¿Cómo agregar una identificación única al nombre del archivo en el trabajo cron?


8

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?


2
Tómese el tiempo para deletrear el título correctamente. Hace que la búsqueda sea mucho más fácil para todos.
Mikel

1
Usted escribió "Cómo agregar uniqie id al archivo nime en el trabajo cron".
Mikel

¿Por qué no usas automysqlbackup?
stoeff

Respuestas:


14

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


1
Podría modificar la sintaxis solo un poco y sería un formato de fecha ISO 8601 perfecto. [AAAA] [MM] [DD] T [hh] [mm] [ss] Z, ya que usa la fecha -u para UTC puede agregar una Z después de la fecha;). en.wikipedia.org/wiki/…
Johan

3

La práctica general para esto es usar una marca de tiempo date +%spara 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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.