La necesidad:

Tengo en un directorio unas carpetas con fecha del día los cuales contienen archivos. Necesito al final del día (luego de medía noche) copiar la carpeta del día que paso y que esto se realice de forma automática (cron)

[root@cuchilla2 dir1]# ls

2017-04-22 2017-04-23 2017-04-24 2017-04-25

Como se puede ver en dir1 existen directorios con fechas y necesito (en este ejemplo) pasar la de ayer (2017-04-25) al directorio de copias de seguridad ubicado en /Nas/backups y que de aquí en adelante pase automáticamente luego de las 00 horas lo del día anterior.

Solución:

Genero un script (bash) que toma la fecha del día, le resta un día y luego de esto copia el contenido a otro sitio. Dicho archivo lo generé en la carpeta /var/cron/backup.sh

#!/bin/sh
#almaceno la fecha de ayer en la variable “fecha”
fecha=`(date +”%Y-%m-%d” –date=”-$i days ago”)`
# sincroniza los archivos del día anterior en dir1
rsync -uarzhmP /dir1/$fecha /Nas/backups

donde

/dir1/$fecha = origen /Nas/backups = destino

Luego de esto agrego una línea en crontab para que se ejecute a las 00:10 horas

10 0 * * * sh /var/cron/backup.sh