Con este comando se pueden copiar ficheros del servidor al local preservando los enlaces simbólicos y la fecha de creación de los archivos.
rsync -avz -e 'ssh -p22' --times usuario@192.168.1.10:/ruta/web/web1.com/ .
los parámetros significan:- a, es para que copie enlaces simbólicos y recursivamente, similar a poner -rl
- v, para que se muestre por pantalla lo que va copiando
- z, para que comprima la descarga
- e, es para realizar la copia por ssh seguido del puerto correspondiente
- times, para que respete las fechas de cada fichero y no ponga la hora de la copia.
Os dejo un par de artículos sobre copiar ficheros:
- Copiar ficheros respetando la fecha de actualización
- Copiar fichero con scp entre servidores desde el terminal
Ahora vamos a automatizar esto y ejecutar el comando de copia desde un archivo, así podemos copiar diferentes directorios del servidor y también podríamos programar el script para que las copias se realicen automáticamente a una determinada hora.
El script lo dejo comentado, en este ejemplo copio dos directorios del servidor a mi pc local.
# Obtenemos la fecha en formato 20220312 para crear el directorio del backup
DATE_FILE=`date +%Y%m%d`
# Obtenemos la ruta del script, por ejemplo /ruta/del/script/fichero.sh
SCRIPT=$(readlink -f $0)
# Obtenemos solo el directorio sin el script
SCRIPTPATH=`dirname $SCRIPT`
# La IP del servidor desde donde vamos a copiar
IP='192.168.1.10'
# Creamos el directorio de backup y entramos dentro
echo "Creando directorio de backup"
mkdir ${DATE_FILE}
cd ${DATE_FILE}
# Dentro del directorio de backup creamos el primer directorio de los datos que vamos a copiar
# Y entramos dentro
echo "Creando directorio de backup1"
mkdir backup_1
cd backup_1
# Realizamos la copia del directorio del servidor que queremos al directorio backup_1
# que en este caso se representa con un . porque es el directorio en que nos encontramos
rsync -avz -e 'ssh -p22' --times usuario@${IP}:/ruta/web/web1.com/ .
# Volvemos al directorio de la fecha para crear el segundo directorio de backup, backup_2
cd ${SCRIPTPATH}/${DATE_FILE}
echo "Creando directorio de backup1"
mkdir backup_2
cd backup_2
# Y realizamos la copia como en el anterior
rsync -avz -e 'ssh -p22' --times usuario@${IP}:/ruta/ficheros/ .
echo "END"
Y esto es todo amigos!!
Gracias por seguirme y leerme, espero que les haya ayudado
Saludos
Alex.
También puede interesarte:
![]() |
Como saber quién y cuando se ha reiniciado un servidor LinuxPor Alex, el 24/05/2022 |
|
![]() |
Listar con ls los ficheros mayores de 0 bytesPor Alex, el 06/05/2022 |
|
![]() |
Poner una etiqueta a un disco USB desde el terminalPor Alex, el 01/04/2022 |
|
![]() |
Limpiar el contenido de un fichero en LinuxPor Alex, el 16/03/2022 |
|
![]() |
Listar los ficheros con tamaño mayor a 0Por Alex, el 22/11/2021 |
|
![]() |
Restaurar panel a su formato original en Linux Mint CinnamonPor Alex, el 22/09/2021 |