Blog Tinux Net

Linux Cmds

Son comandos que muchas veces, se utilzan, pero son muy extensos y se suelen olvidar

  • 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

    Decodificacion por shell de Texto en base64

    echo "Base64Text' | base64 --decode
    

    Util para el fichero de sitemanager.xml de Filezilla

    grep -E 'Host|User|Pass' sitemanager.xml

    Y pasar una macro en neovim para formatearla y un subshell para su decodificacion.

  • Publicado en

    Instalación de Git

    Primero, instala Git en tu sistema openSUSE Tumbleweed. Ejecuta los siguientes comandos como usuario root:
    Es posibele que no haga falta instalar el repositorio, si ya se ha configurado previamente el servidor con OpenSUSE.
    zypper addrepo https://download.opensuse.org/repositories/devel:tools:scm/openSUSE_Tumbleweed/devel:tools:scm.repo zypper refresh zypper install git

    Configuración del servidor

    sudo adduser git
    su git
    

    Configurar el directorio SSH para el usuario git:

    cd
    mkdir .ssh && chmod 700 .ssh
    touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
    

    Creación de un repositorio

    Crea un directorio para almacenar los repositorios:

    sudo mkdir /opt/git
    sudo chown git:git /opt/git
    

    Crea un repositorio vacío:

    cd /opt/git
    mkdir proyecto.git
    cd proyecto.git
    git init --bare
    

    Configuración de acceso SSH

    Para permitir que los desarrolladores accedan al repositorio, hay que agregar sus claves públicas SSH al archivo authorized_keys del usuario git:

    cat /tmp/id_rsa.desarrollador1.pub >> ~/.ssh/authorized_keys
    cat /tmp/id_rsa.desarrollador2.pub >> ~/.ssh/authorized_keys
    

    Restricción de acceso (opcional)

    Para mayor seguridad, puedes limitar el acceso del usuario git solo a operaciones de Git: Verificar si git-shell está disponible:

    cat /etc/shells
    

    Si no está listado, agrégarlo:

    which git-shell
    sudo vim /etc/shells
    

    Añadir la ruta completa de git-shell al final del archivo. Cambia el shell del usuario git:

    sudo chsh git
    

    Ingresar la ruta de git-shell (generalmente /usr/bin/git-shell). Uso del servidor Los desarrolladores pueden ahora clonar el repositorio usando:

    git clone git@tu_servidor:/opt/git/proyecto.git
    

    Y pueden enviar cambios al repositorio:

    git push origin master
    
  • Publicado en

    WLS

    Dependiendo la version de Windows, puede ya estar instalado wls o bien hay que descargarsela desde microsoft: Podemos ver la version de windows: Tecla Windows Logo + R, teclear winver

    Si tecelamos wsl.es y no esta, tendremos que instalar con la version antigua.

    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    

    y habilitar el Servicio de la Maquina Virtual:

    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    

    Nota: para la instalacion es necesario Inicializar un PowerShell como administrador Si ya esta y podemos teclear wsl pasamos al siguiente paso. Ver las distribuciones disponible

    wls --list --online
    

    Teniendo un resultado parecido a este: A continuación, se muestra una lista de las distribuciones válidas que se pueden instalar. Instalar con 'wsl --install -d <Distribución>'.

    NAME FRIENDLY NAME
    Ubuntu Ubuntu
    Debian Debian GNU/Linux
    kali-linux Kali Linux Rolling
    Ubuntu-18.04 Ubuntu 18.04 LTS
    Ubuntu-20.04 Ubuntu 20.04 LTS
    Ubuntu-22.04 Ubuntu 22.04 LTS
    Ubuntu-24.04 Ubuntu 24.04 LTS
    OracleLinux_7_9 Oracle Linux 7.9
    OracleLinux_8_7 Oracle Linux 8.7
    OracleLinux_9_1 Oracle Linux 9.1
    openSUSE-Leap-15.5 openSUSE Leap 15.5
    SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4
    SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5
    openSUSE-Tumbleweed openSUSE Tumbleweed

    wsl --install -d openSUSE-Leap-15.5 
    

    Y ya es una instalacion de linux

    openSUSE-Leap-15.5

    Para entornos de trabajo estables, es preferible una distribucion solida y que solo haya sido probada y dada de alta como estable.

    wsl --install -d openSUSE-Leap-15.5 
    

    Una vez instalado, lo actualizamos con

    sudo zypper update
    

    salimos con exit.

    Y para entrar, lo podemos hacer de tres manera WindowsKey +R -> wsl y enter En buscar wsl. O desde un shell de PowewShell: wls

    Ya una vez entraso el el Subsistema, podemos instalar softwarde linux como si estubieramos en linux. Ejemplo para instalar rsync :

    sudo zypper install rsync
    
  • Publicado en

    WLS

    Dependiendo la version de Windows, puede ya estar instalado wls o bien hay que descargarsela desde microsoft: Podemos ver la version de windows: Tecla Windows Logo + R, teclear winver

    Si tecelamos wsl.es y no esta, tendremos que instalar con la version antigua.

    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    

    y habilitar el Servicio de la Maquina Virtual:

    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    

    Nota: para la instalacion es necesario Inicializar un PowerShell como administrador Si ya esta y podemos teclear wsl pasamos al siguiente paso. Ver las distribuciones disponible

    wls --list --online
    

    Teniendo un resultado parecido a este: A continuación, se muestra una lista de las distribuciones válidas que se pueden instalar. Instalar con 'wsl --install -d <Distribución>'.

    NAME FRIENDLY NAME Ubuntu Ubuntu Debian Debian GNU/Linux kali-linux Kali Linux Rolling Ubuntu-18.04 Ubuntu 18.04 LTS Ubuntu-20.04 Ubuntu 20.04 LTS Ubuntu-22.04 Ubuntu 22.04 LTS Ubuntu-24.04 Ubuntu 24.04 LTS OracleLinux_7_9 Oracle Linux 7.9 OracleLinux_8_7 Oracle Linux 8.7 OracleLinux_9_1 Oracle Linux 9.1 openSUSE-Leap-15.5 openSUSE Leap 15.5 SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4 SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5 openSUSE-Tumbleweed openSUSE Tumbleweed

    wsl --install -d openSUSE-Leap-15.5 
    

    Y ya es una instalacion de linux

    openSUSE-Leap-15.5

    Para entornos de trabajo estables, es preferible una distribucion solida y que solo haya sido probada y dada de alta como estable.

    wsl --install -d openSUSE-Leap-15.5 
    

    Una vez instalado, salimos con exit.

    Y para entrar, lo podemos hacer de tres manera WindowsKey +R -> wsl y enter En buscar wsl. O desde un shell de PowewShell: wls

  • Publicado en

    Orden para listar todos los archivos de forma recursiva para posteriormente procesarlos.

    tree -if $PWD | grep pdf

    Recortar los nombres de ficheros hasta los n primeros for file in *; do echo mv -i -- "$file" "${file:0:8}.pdf" done

    Y si es el resultado deseado esta la siguiente orden for file in *; do mv -i -- "$file" "${file:0:8}.pdf" done