Mi cronjob se ve así:
5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily.dump
¿Cómo puedo hacer que el nombre de archivo sea único cada vez que cronjob escribe mysql_daily.dump?
Mi cronjob se ve así:
5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily.dump
¿Cómo puedo hacer que el nombre de archivo sea único cada vez que cronjob escribe mysql_daily.dump?
Respuestas:
Para bash, tal vez:
... > /srv/backup/mysql_daily-$(date -u +\%Y\%m\%dT\%H\%M\%S)Z.${RANDOM}.dump
Personalmente, generalmente solo pongo comandos simples en mi crontab
. Pondría esto en un pequeño script y usaría el script en el crontab
. Esto tendría el beneficio de no requerir que se escapen los %
personajes (un error común de crontab).
la actualización lo hizo ISO 8601 por comentario de @johan
cron
La práctica general para esto es usar una marca de tiempo date +%s
para generar algo útil para marcar el archivo (utilicé los segundos como ejemplo, pero puede usar cualquier formato de fecha). Realmente no es necesario tener un nombre de archivo verdaderamente único siempre que el nombre del archivo no entre en conflicto.
5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily_`date +\%s`.dump
Tratar
5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily.$(/bin/date +\%Y\%m\%d).dump
que pondrá la fecha actual en el formato AAAAMMDD en el nombre del archivo.