Podcast Episode Details

Back to Podcast Episodes

«SAR o no SAR» con LinuxDoesMatter y ChatGPT



Prompt 1:

“Tengo en un servidor Linux un directorio que se llama /bk_datos. Quiero que de otro directorio de mi host llamado /datos_2024 se haga una copia de seguridad total los sábados a las 18:30pm y una copia incremental de Lunes a Viernes a las 22:00pm en el directorio /bk_datos Quiero que uses el comando tar y que comprimas con xz”.

Respuesta 1:

#!/bin/bash
# Ruta del directorio de origen
source_directory="/datos_2024"
# Ruta del directorio de destino
backup_directory="/bk_datos"
# Nombre del archivo de copia de seguridad
backup_file="$backup_directory/backup_$(date +\%Y-\%m-\%d_%H-\%M).tar.xz"
# Verificar si es sábado
if [ "$(date +\%u)" -eq 6 ]; then
# Copia de seguridad total los sábados a las 18:30
tar --listed-incremental="$backup_directory/incremental.snar" -cJf "$backup_file" "$source_directory"
echo "Copia de seguridad total realizada el $(date +\%Y-\%m-\%d_%H-\%M)."
else
# Copia de seguridad incremental de Lunes a Viernes a las 22:00
tar --listed-incremental="$backup_directory/incremental.snar" -cJf "$backup_file" "$source_directory"
echo "Copia de seguridad incremental realizada el $(date +\%Y-\%m-\%d_%H-\%M)."
fi
………………………………………
chmod +x backup_script.sh
# Copia total los sábados a las 18:30
30 18 * * 6 /ruta/al/backup_script.sh
# Copia incremental de lunes a viernes a las 22:00
0 22 * * 1-5 /ruta/al/backup_script.sh

Referencia: https://juncotic.com/tar-backups-incrementales-gnu-linux/

Solo me queda añadir la lógica para que el sábado “expulse” el snapshot y haga un backup total puro y duro creando el fichero de snapshot incremental .snar nuevecito para los subsiguientes incrementales de lunes a viernes.

Conclusión: ChatGPT Me ha ayudado mucho no, ¡muchísimo! pero hay veces que el remate lo tiene que hacer el “ser humano”.

Prompt 2:

“Tengo un partición montada en un directorio que se llama /proyecto_seal y tengo tres usuarios user01, user02 y user03. Quiero que los tres usuarios tengan acceso a este directorio. También quiero una política de cuotas con un soft limit de 2G y periodo de gracia de 3 dias y una hard limit de 5G. Otorga al directorio el permiso apropiado para que ningún usuario de esto tres pueda borrar lo que han creado los otros”

Respuesta 2:

# Asegúrate de que el grupo exista, si no, créalo
sudo groupadd proyecto_seal
# Añade usuarios al grupo
sudo usermod -aG proyecto_seal user01
sudo usermod -aG proyecto_seal user02
sudo usermod -aG proyecto_seal user03
# Cambia el propietario y grupo del directorio
sudo chown :proyecto_seal /proyecto_seal
# Establece permisos para el propietario (dueño del directorio)
sudo chmod 1770 /proyecto_seal
# Permite que los miembros del grupo tengan acceso total
sudo chmod g+rwx /proyecto_seal
# Restringe el acceso a otros usuarios (no propietarios ni del grupo)
sudo chmod o-rwx /proyecto_seal
sudo apt-get install quota
vi /etc/fstab
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /proyecto_seal ext4 defaults,usrquota,grpquota 0 2
sudo mount -o remount /proyecto_seal
sudo quotacheck -cug /proyecto_seal
sudo edquota -u user01
sudo edquota -u user02
sudo edquota -u user03

Prompt 3:

Tengo un fichero de texto con paths completos de directorios, algunos caminos empiezan por /usr/bin/local/ y quiero en estos que empiezan por /usr/bin/local/ y solo en estos eliminar /usr/bin/local/ ¿Me creas un script para realizar esta tarea?

Respuesta 3:

#!/bin/bash
# Verificar si se proporcionó un archivo como argumento
if [ -z "$1" ]; then
echo "Uso: $0 archivo"
exit 1
fi
archivo="$1"
# Verificar si el archivo existe
if [ ! -f "$archivo" ]; then
echo "El archivo '$archivo' no existe."
exit 1
fi
# Crear un archivo temporal para almacenar los resultados
archivo_temporal=$(mktemp)
# Procesar el archivo línea por línea
while IFS= read -r linea; do
# Verificar si la línea comienza con /us
            


Published on 1 year, 6 months ago






If you like Podbriefly.com, please consider donating to support the ongoing development.

Donate