Blog Tinux Net

tinux

author_description

  • Publicado en

    Restic

    • Crear calendario de snapshots a guardar, diario [7], semanal [3] , mensual [1] y anual [1].
    • Crear estructura para excluir archivos y/o directorios.
    • Crear estructura para incluir archivos y/o directorios.
    • Crear metodo, para que sftp se pueda autentificar con llave ( keys rsa o ed25529).
    • Crear menus para aceptar crear el backup de restic.
    • Generar archivo para tratamiento posterior con restic.

    Nota: muy importante es el orden de las ordenes, y opciones

    Politica de Retencion o Calendarios de Snapshots

    # backup.sh
    DIA_SEMANA=$(date +%u)    # 1=lunes, 7=domingo
    DIA_MES=$(date +%d)
    MES=$(date +%m)
    
    TAGS="diario"
    
    # Semanal: cada domingo
    if [[ $DIA_SEMANA -eq 7 ]]; then
      TAGS="$TAGS,semanal"
    fi
    
    # Mensual: primer día del mes
    if [[ $DIA_MES -eq 1 ]]; then
      TAGS="$TAGS,mensual"
    fi
    
    # Semestral: 1 de enero y 1 de julio
    if [[ $MES == "01" && $DIA_MES == "01" ]]; then
      TAGS="$TAGS,semestral,anual"
    elif [[ $MES == "07" && $DIA_MES == "01" ]]; then
      TAGS="$TAGS,semestral"
    fi
    
    restic -r "$REPO" backup --tag "$TAGS" /ruta/a/respaldo
    
    # Ahora forget con agrupación por tags
    restic -r "$REPO" forget \
      --group-by tags \
      --keep-tag diario      --keep-last 5 \
      --keep-tag semanal     --keep-last 3 \
      --keep-tag mensual     --keep-last 1 \
      --keep-tag semestral   --keep-last 4 \
      --keep-tag anual       --keep-last 1 \
      --prune
    

    Filtros para Inclusion de Archivos

    Incluir archivos segun que patron , no es sencillo en restic. Al final, he llegado a la conclusion de utilizar la herramienta externa find para que me cree los la ruta absoluta para copiar.

    Ejemplo que funciona:

    Hay que crear un archivo como .include_images utilizando este codigo con find

    find . -type f \( -iname "*.jpg" -o -iname "*.png" -o -iname "*.gif" -o -iname "*.tiff" -o -iname "*.bmp" \) -print > .include_images
    

    y asi en el Shell:

    restic backup  -r /mnt/restic-backup/testing.took.tinux.net  --files-from .include_images
    
    
  • Publicado en

    I'll help you set up a Git server on AlmaLinux. Here's a comprehensive guide:

    Installing Git Server on AlmaLinux

    1. Update System and Install Git

    sudo dnf update -y
    sudo dnf install git -y
    

    2. Create a Git User

    sudo adduser git
    sudo passwd git
    

    3. Set Up SSH Access

    # Switch to git user
    sudo su - git
    
    # Create .ssh directory
    mkdir ~/.ssh && chmod 700 ~/.ssh
    touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
    

    4. Create a Git Repository

    # Create a directory for repositories
    sudo mkdir -p /srv/git
    sudo chown git:git /srv/git
    
    # Switch to git user and create a bare repository
    sudo su - git
    cd /srv/git
    git init --bare myproject.git
    

    5. Configure Firewall (if needed)

    sudo firewall-cmd --permanent --add-service=ssh
    sudo firewall-cmd --reload
    

    6. Client Setup - Add SSH Key

    On your client machine:

    # Generate SSH key if you don't have one
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    
    # Copy your public key to the git server
    ssh-copy-id git@your-server-ip
    

    Or manually add your public key to /home/git/.ssh/authorized_keys on the server.

    7. Clone and Use the Repository

    From your client machine:

    # Clone the repository
    git clone git@your-server-ip:/srv/git/myproject.git
    
    # Navigate to the directory
    cd myproject
    
    # Add files and push
    echo "# My Project" >> README.md
    git add README.md
    git commit -m "Initial commit"
    git push origin master
    

    Alternative: Install Gitea (Web-based Git Service)

    If you want a GitHub-like interface:

    # Install dependencies
    sudo dnf install git wget -y
    
    # Download Gitea
    wget -O /tmp/gitea https://dl.gitea.io/gitea/1.21/gitea-1.21-linux-amd64
    sudo mv /tmp/gitea /usr/local/bin/gitea
    sudo chmod +x /usr/local/bin/gitea
    
    # Create git user and directories
    sudo adduser --system --shell /bin/bash --group --disabled-password --home /home/git git
    sudo mkdir -p /var/lib/gitea/{custom,data,log}
    sudo chown -R git:git /var/lib/gitea/
    sudo chmod -R 750 /var/lib/gitea/
    
    # Create systemd service
    sudo nano /etc/systemd/system/gitea.service
    

    Add this content to the service file:

    [Unit]
    Description=Gitea
    After=syslog.target
    After=network.target
    
    [Service]
    RestartSec=2s
    Type=simple
    User=git
    Group=git
    WorkingDirectory=/var/lib/gitea/
    ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
    Restart=always
    Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
    
    [Install]
    WantedBy=multi-user.target
    
    # Start Gitea
    sudo systemctl enable gitea
    sudo systemctl start gitea
    
    # Open firewall port (default 3000)
    sudo firewall-cmd --permanent --add-port=3000/tcp
    sudo firewall-cmd --reload
    

    Access Gitea at http://your-server-ip:3000

    Security Tips

    1. Disable shell access for git user:

      sudo usermod -s /usr/bin/git-shell git
      
    2. Use SSH keys only (disable password authentication)

    3. Set up proper file permissions on repository directories

    4. Enable SELinux and configure it properly

    5. Keep system updated regularly

    Pasos para interactuar con el git remoto desde tu ubicación local.

    git remote add origin git@git.servidor.net:/srv/git/miproyecto.git
    

    Pasos Completos

    1. Añadir el repositorio remoto:
    git remote add origin git@git.servidor.net:/srv/git/miproyecto.git
    
    1. Verificar que se añadió correctamente:
    git remote -v
    

    Deberías ver algo como:

    origin  git@git.servidor.net:/srv/git/miproyecto.git (fetch)
    origin  git@git.servidor.net:/srv/git/miproyecto.git (push)
    
    1. Hacer tu primer commit (si aún no lo has hecho):
    git add .
    git commit -m "Primer commit"
    
    1. Subir los cambios al servidor:
    git push -u origin master
    # o si usas 'main' como rama principal:
    git push -u origin main
    

    Si ya Añadiste el Remote Incorrectamente

    Si ya ejecutaste el comando incorrecto y necesitas corregirlo:

    # Ver los remotes actuales
    git remote -v
    
    # Si existe un remote incorrecto, eliminarlo
    git remote remove origin
    
    # Añadir el remote correcto
    git remote add origin git@git.servidor.net:/srv/git/miproyecto.git
    

    Solución de Problemas de Conexión

    Si tienes problemas conectando al servidor, verifica:

    1. Conexión SSH:
    ssh git@git.servidor.net
    
    1. Permisos del repositorio en el servidor:
    # En el servidor
    ls -la /srv/git/miproyecto.git
    
    1. Tu clave SSH está configurada:
    ssh-add -l
    

    ¿Te funciona ahora con el comando correcto?

  • Publicado en

    Configuraciones para las cuentas de hotmail, live , office365 y Outlook. Hay que irse al la cuenta y activar o bien el reenvio o IMAP/POP3

    IMAP server: outlook.office365.com IMAP port: 993 IMAP encryption: SSL/TLS Authentication Method: OAuth2/Modern Auth

    POP server name: outlook.office365.com POP port: 995 POP encryption: SSL/TLS Authentication Method: OAuth2/Modern Auth

    SMTP server name: smtp-mail.outlook.com SMTP port: 587 SMTP encryption: STARTTLS Authentication Method: OAuth2/Modern Auth

  • Publicado en

    Los plugin que son necesarios para mi programacion. Los generalistas, que son para todo tipo de textos. Y luego los dedicados para cada tipo de programacion.

    Para ver los plugins de nevim Primero tenemos que saber que gestor de plugins tenemos:

    nvim ~/.config/nvim/init.vim 
    

    Para saber qué gestor de plugins usas en Neovim, puedes revisar tu archivo de configuración. Aquí te explico cómo hacerlo:

    1. Revisa tu archivo de configuración principal

    Abre tu archivo de configuración de Neovim:

    nvim ~/.config/nvim/init.lua
    

    o si usas Vimscript:

    nvim ~/.config/nvim/init.vim
    

    2. Busca estas señales características

    Si usas Packer.nvim verás algo como:

    require('packer').startup(function(use)
        use 'wbthomason/packer.nvim'
        use 'nvim-tree/nvim-tree.lua'
        -- más plugins...
    end)
    

    Si usas Lazy.nvim verás:

    require("lazy").setup({
        {"nvim-tree/nvim-tree.lua"},
        {"nvim-treesitter/nvim-treesitter"},
        -- más plugins...
    })
    

    Si usas vim-plug (en Vimscript):

    call plug#begin()
    Plug 'preservim/nerdtree'
    Plug 'nvim-treesitter/nvim-treesitter'
    " más plugins...
    call plug#end()
    

    3. Comando rápido para verificar

    Ejecuta en Neovim:

    :scriptnames
    

    Busca líneas que contengan:
    - packerPacker.nvim
    - lazyLazy.nvim
    - plugvim-plug

    4. Revisa el directorio de plugins

    Ejecuta en terminal:

    ls ~/.local/share/nvim/site/pack/
    

    Los directorios comunes son:
    - packer/Packer.nvim
    - lazy/Lazy.nvim
    - plugins/vim-plug

    • awesome-vim-colorschemes: OK
    • telescope.nvim: OK
    • vim-snippets: OK
    • vim-loremipsum: OK
    • coc.nvim: OK
    • nvim-treesitter: OK
    • nvim-cmp: OK
    • nvim-web-devicons: OK
    • indent-blankline.nvim: OK
    • vim-css-color: OK
    • nerdtree: OK
    • plenary.nvim: OK
    • emmet-vim: OK
    • vim-surround: OK
    • vim-closetag: OK
    • nvim-tree.lua: OK
    • vim-airline: OK
    • vim-unimpaired: OK
  • Publicado en

    Anotaciones de trabajo con neovim.

    Combinacion de teclas para aceptar la sugerencia de coc: [Ctrl+y] + , Teclas importantes o inserta nueva linea en blanco si se le da en la linea superior bd elimina el bufffer sonde estemos situados :ls lista los bufferes bd35 eliminaría el buffer 35 sin cerrar ninguna ventana

    Ctrl+w x swap windows Intercambia ventanas en el x-axis

    Sustitucion en todo el documento

    :%s/SustituirPalabra/PalabraSustituida/g
    

    /g es para indicar que lo haga en general.

    mksession: Guarda sesiones de neovim para recupèrarlas mas tarde. :

    mks ~/session.nvim
    

    Para recuperar la sesion (importante la S mayuscula)

     $> nvim -S ~/session.nvim
    

    Creacion de ventana en neovim con Ctrl. Todo esto se puede hacer con ordenes de nvim: como por ejemplo :sp :sv , etc

    Ctrl+ws o :sp: dividir ventana horizontalmente. 
    Ctrl+wv o :sv.: dividir ventana verticalmente.
    Ctrt+ww: Cambiar de ventana .
    Ctrl+wq: cerrar ventana. 
    Ctrl+wx: intercambiar ventanas. 
    Ctrl+w=: hacer ventanas iguales.
    

    Plugin: emmet Para su instalacion hay que editar el archivo de configuracion de neovim:

    nvim ~/.config/nvim/init.vim

    E inserta entre los tags de

    call plug#begin('~/.local/share/nvim/plugged')
    Plug 'mattn/emmet-vim' "Funciones Emmet de Autocompletado html, CSS, y Javascript
    call plug#end()
    

    Puedes cerrar o abrir neovim para que tenga en cuenta los camios o bien el comando: :source

    Para instalar el plugin hay que ejecutar el instalador de plugins :PlugInstall

    Tambien es buena idea hacer updates a los plugins que tengamos instalados:

     :PlugUpdate , :PlugUpgrade
    

    Para poder usarlo ejemplo: En modo insercion

     html:5 y luego [Ctrl+y] + , o ! y luego [Ctrl+y] + ,
    

    Para expandir o contraer etiquetas HTML: Instalar el complemento "vim-surround"

    Agregar la siguiente línea al archivo de configuración ~/.config/nvim/init.vim:

    Plug 'tpope/vim-surround'

    Recargar la configuración de Neovim o reinicia Neovim y ejecutar :PlugInstall para instalar el complemento.

    Abrir un HTML.

    Colocar el cursor dentro de la etiqueta que se desea contraer o expandir.

    Para contraer la etiqueta, presiona cst. Esto significa:

    c: Modo de cambio (change mode). st: Seleccionar "tag" (la etiqueta) que envuelve el cursor. Para expandir la etiqueta, presiona ysat. Esto significa:

    ys: Yank surroundings (copia el entorno). at: Alrededor de la etiqueta (around tag). Con estos comandos, se podra contraer o expandir las etiquetas HTML de manera rápida y eficiente en Neovim. El complemento "vim-surround" también es útil para manipular otros tipos de delimitadores, como comillas, paréntesis y corchetes. Más información sobre las opciones disponibles y las combinaciones de teclas :help surround dentro de Neovim.

    Comandos de plegado: https://atareao.es/tutorial/vim/pliegues-en-vim @atareao@mastodon.social

    Para facilitarte todo esto del plegado, a continuación encontrarás los comandos mas utilizados en el modo normal,

    zo: abre el pliegue sobre el que te encuentras. También lo puedes hacer con la barra espaciadora.
    zc: hace la operación inversa de la anterior, es decir, cierra el pliegue sobre el que te encuentres…, en caso de que exista claro.
    za: abre o cierra el pliegue el que te encuentres. Es decir, si el pliegue está abierto lo cierra, y en el caso de que esté cerrado lo abre.
    zd: en caso de encontrarte ante un pliegue manual, con esta combinación de teclas, borrará el pliegue. De esta manera ya no podrás activarlo de nuevo. Esto no borra el texto contenido en el pliegue, solo borra el pliegue en si.
    zj: desplaza el cursor hasta el siguiente pliegue.
    zk: mueve el cursor hasta el pliegue anterior.
    zR: abre todos los pliegues en la memoria actual, recuerda el capítulo anterior sobre memorias, ventanas y pestañas.
    zM: cierra todos los pliegues existentes.
    zE: borra todos los pliegues.
    zo: Abre un nivel de plegado debajo del cursor.
    zO: Abre todos los niveles de plegado debajo del cursor.
    zc: Cierra un nivel de plegado debajo del cursor.
    zC: Cierra todos los niveles de plegado debajo del cursor.
    za: Alterna el plegado en el nivel bajo el cursor (plegar/desplegar).

  • Publicado en

  • Abrir DBeaver y haz clic en el botón "Nueva conexión".
  • En la ventana "Nueva conexión", seleccionar "MySQL" como el tipo de conexión.
  • En la sección "Configuración de conexión", introducir la siguiente información:
    • Nombre de host: localhost
    • Puerto: el puerto de la base de datos MySQL. El puerto por defecto es 3306.
    • Usuario: el nombre de usuario de la base de datos MySQL.
    • Contraseña: la contraseña de la base de datos MySQL.

    En la sección "SSH":

    • Tipo de conexión: "SSH".
    • Nombre de host: la dirección IP o el nombre de host del servidor SSH.
    • Puerto: el puerto del servidor SSH. El puerto por defecto es 22.
    • Usuario: el nombre de usuario del servidor SSH.
    • Contraseña: la contraseña del servidor SSH.

    • Puerto local: el puerto local que quieres usar para el túnel SSH. Ejem: 3310

    • Puerto remoto: el puerto remoto que quieres usar para el túnel SSH. Ejem: 3306
    1. Hacer clic en el botón Probar para comprobar la conexión. Si la conexión es exitosa, aparecerá un mensaje de "Conexión exitosa".

    Haz clic en el botón Aceptar para guardar la conexión.

  • Publicado en

    Abrir DBeaver y haz clic en el botón "Nueva conexión".

    En la ventana "Nueva conexión", seleccionar "MySQL" como el tipo de conexión.
    En la sección "Configuración de conexión", introducir la siguiente información :

    Nombre de host: localhost

    Puerto: el puerto de la base de datos MySQL. El puerto por defecto es 3306.

    Usuario: el nombre de usuario de la base de datos MySQL.

    Contraseña: la contraseña de la base de datos MySQL.

    En la sección "SSH":

    Tipo de conexión: "SSH".

    Nombre de host: la dirección IP o el nombre de host del servidor SSH.

    Puerto: el puerto del servidor SSH. El puerto por defecto es 22.

    Usuario: el nombre de usuario del servidor SSH. Contraseña: la contraseña del servidor SSH.

    Puerto local: el puerto local que quieres usar para el túnel SSH. Ejem: 3310

    Puerto remoto: el puerto remoto que quieres usar para el túnel SSH. Ejem: 3306

    Hacer clic en el botón Probar para comprobar la conexión. Si la conexión es exitosa, aparecerá un mensaje de "Conexión exitosa".

    Haz clic en el botón Aceptar para guardar la conexión.

  • Publicado en

    file: database.mysql.php

    <?php
    
    $host = "localhost";
    $port = 3306;
    $database = "Database";
    $user_database = "UserDatabase";
    $password_database = "PassDatabase";
    // Si tenemos que hacerlo a traves de un tunel
    
    shell_exec("ssh -fNg -L 3310:$host:3306 user_ssh@domain.dom");
    

    Para comprobar que el túnel funciona:

    ssh -N -L 3310:127.0.0.1:3306 user_ssh@domain.dom 
    

    y si estas en un shell:

    mariadb -D database -u user_database -ppassword -h 127.0.0.1 -P 3310
    
     $link = new mysqli($host, $user_database, $password_database, $database, $port);
    if ($link->connect_error) {  
    
      die("Error: No se pudo conectar a MySQL." . 
    PHP_EOL); }
    echo "Connected successfully";
      ?> 
    

    En cada script para poder operar con la base de datos tenemos que llamar al archivo de configuracion:

    Para obtener un solo registro y visualizarlo: Y para utilizarlo:

    <?php echo $origen_suministro ?>
    
  • Publicado en

    Trabajar con ventanas Estos atajos te permiten realizar todo tipo de operaciones con ventanas, ya sea abrirlas, cerrarlas, moverlas o cambiar entre ellas.

    Iniciar y detener aplicaciones Estos atajos facilitan el inicio y la detención de programas.

    Atajo Descripción Meta Abrir el lanzador de aplicaciones Alt+Espacio / Alt+F2 Ejecutar interfaz de comandos
    Ctrl+Esc Actividad del sistema
    Alt+F4 Cerrar
    Ctrl+Q Salir
    Ctrl+Alt+Esc Forzar salida
    Desplazarse
    Estos atajos le permiten navegar entre ventanas, actividades y escritorios de manera eficiente.

    Atajo Descripción
    Ctrl+F10 Mostrar ventanas
    Ctrl+F9 Mostrar ventanas en el escritorio actual
    Ctrl+F7 Mostrar solo las ventanas de la aplicación actual
    Ctrl+F12 Mostrar escritorio
    Ctrl+Alt+A Activar ventana que requiere atención
    Alt+Tab Recorrer ventanas
    Alt+Mayús+Tab Recorrer ventanas (inverso)
    Alt+F3 Abrir el menú Operaciones de ventana
    Meta+Alt+Arriba Cambiar a la ventana superior
    Meta+Alt+Abajo Cambiar a la ventana inferior
    Meta+Alt+Izquierda Cambiar a la ventana de la izquierda
    Meta+Alt+Derecha Cambiar a la ventana de la derecha

    Desplazamiento y zoom ¿Necesita ver algo más de cerca? Los espacios de trabajo KDE Plasma™ le permiten acercar y alejar la imagen y mover todo el escritorio, de modo que puede ampliar la imagen incluso cuando la aplicación que está utilizando no lo admite.

    Atajo Descripción

    Meta+= Acercar
    **Meta+- Alejar
    **Meta+0 Zoom normal
    **Meta+Arriba
    Desplazarse hacia arriba
    Meta+Abajo ** Desplazarse hacia abajo
    Meta+Izquierda Desplazamiento hacia la izquierda, mover la ventana al monitor de la izquierda[a]
    Meta+Derecha Desplazamiento hacia la derecha, mover la ventana al monitor de la derecha[a]
    Meta+RePág Maximizar/Restaurar ventana
    Meta+AvPág Minimizar ventana
    [a] En un entorno con varios monitores

    Trabajar con actividades y escritorios virtuales

    Estos atajos le permiten cambiar entre actividades y escritorios virtuales y gestionarlos.

    Atajo Descripción

    Meta+Q / Alt+D,Alt+A Gestionar actividades
    Meta+Tab Actividad siguiente
    Meta+Mayús+Tab Actividad anterior
    Ctrl+F1 Cambiar al escritorio 1
    Ctrl+F2 Cambiar al escritorio 2
    Ctrl+F3 Cambiar al escritorio 3
    Ctrl+F4 Cambiar al escritorio 4

    Trabajar con el escritorio
    Estos atajos le permiten trabajar con el escritorio KDE Plasma™ y los paneles.

    Atajo Descripción

    Alt+D A Añadir widgets
    Alt+D R Eliminar este widget
    Alt+D L Bloquear/desbloquear widgets
    Alt+D S Configuración de widgets
    Ctrl+F12 Mostrar escritorio
    Alt+D T Ejecutar la aplicación asociada
    Alt+D,Alt+S Configuración del escritorio

    Atajo Descripción

    F1 Ayuda
    **Mayús+F1 ¿Qué es esto?
    Trabajar con documentos
    Ya se trate de un documento de texto, una hoja de cálculo o un sitio web, estos atajos facilitan la realización de muchos tipos de tareas con ellos.

    Atajo Descripción

    F5 Actualizar
    Ctrl+A Seleccionar todo
    Ctrl+Z Deshacer
    Ctrl+Mayús +Z Rehacer
    Ctrl+X Cortar
    Ctrl+C Copiar
    Ctrl+V Pegar
    Ctrl+N Nuevo
    Ctrl+P Imprimir
    Ctrl+S Guardar
    Ctrl+F Buscar Ctrl+W Cerrar documento/pestaña

    Trabajar con archivos
    Tanto si se encuentra en un cuadro de diálogo Abrir/Guardar como en el gestor de archivos Dolphin, estos atajos le permitirán ahorrar tiempo al realizar operaciones con archivos. Tenga en cuenta que algunos de los conceptos utilizados con los archivos son los mismos que con los documentos, por lo que varios de los atajos son idénticos a los mencionados anteriormente.

    Atajo Descripción
    Ctrl+Z Deshacer
    Ctrl+X Cortar
    Ctrl+C Copiar
    Ctrl+V Pegar
    Ctrl+A Seleccionar todo
    Ctrl+L Reemplazar ubicación
    Ctrl+Mayús+A Invertir selección
    Alt+Izquierda Atrás
    Alt+Derecha Adelante
    Alt+Arriba Arriba (a la carpeta que contiene esta)
    Alt+Inicio Carpeta de inicio
    Suprimir Mover a la papelera
    Mayús+Suprimir Eliminar permanentemente

    Cambiar el volumen y el brillo

    Además de las teclas estándar, muchos teclados de ordenador y portátiles actuales tienen teclas o botones especiales para cambiar el volumen de los altavoces, así como el brillo del monitor, si procede. Si están presentes, puede utilizar estas teclas en KDE Plasma Workspaces™ para realizar esas tareas.

    Si no dispone de dichas teclas, consulte la sección titulada «Modificar atajos» para obtener información sobre cómo asignar teclas para estas tareas.

    Abandonar el ordenador
    ¿Ha terminado? Utilice estos atajos y guarde su ordenador.

    Atajo Descripción

    Ctrl+Alt+LBloquear pantalla
    Ctrl+Alt+Supr Abandonar