Estoy configurando un Cronjob que respaldará una base de datos MySQL que tengo en mi servidor, pero no quiero que siga sobrescribiendo el mismo archivo una y otra vez. En cambio, quiero tener una variedad de copias de seguridad para elegir, hechas automáticamente. Por ejemplo:
## Cronjob, run May 21st, 2011:
mysqldump -u username -ppasword database > /path/to/file/21-03-2011.sql
## SAME Conjob, run May 28th, 2011:
mysqldump -u username -ppasword database > /path/to/file/28-03-2011.sqlY así.
¿Hay alguna manera de que pueda usar la fecha y / o hora del sistema como algún tipo de variable en mi Cronjob? Si no, ¿cuáles son sus sugerencias para lograr lo mismo?

dateHay que tener cuidado con dentro de un cronfile: algunos crons (¿todos?) Se tratan%como el final del comando. (Así que$()no era el problema). Debe escapar de todos los signos de porcentaje:... touch "/tmp/$(date +\%Y-\%m-\%d)"(es mejor usar un formato de fecha que se clasifique lexicográficamente)DATE=$( date -I )y luego usarlo${DATE}más tarde resulta en usar un literal$( date -I )en la línea de comando del trabajo.%es necesario escapar de OpenSuse 42.Deberías poder usar
date.Escriba
info dateoman datepara más detalles.Algo como lo siguiente podría ser adecuado para usted (cambie el formato de fecha según sus necesidades)
fuente
%caracteres dentro de cron.Ver: http://www.ducea.com/2008/11/12/using-the-character-in-crontab-entries/
fuente
Aquí está el script bash que utilicé:
Los archivos se ven así:
Apunte el trabajo cron a esto para que se ejecute todas las noches o lo que prefiera.
fuente
Escriba un pequeño script de contenedor que utilice el
datecomando y llame a su comando de copia de seguridad.fuente