Copia de security de bases de datos con cron

Estoy intentando configurar un trabajo cron para hacer una copy de security de mis bases de datos a diario. Esto es lo que escribí en mi file crontab:

25 18 * * * root mysqldump -u root -p myPassWord --all-databases | gzip > /var/backup/database_`date '+%m-%d-%Y'`.sql.gz 

Como no pasó nada a las 18:25, eché un vistazo a mi file /var/log/syslog (el server está en Debian) esto es lo que encontré:

 Jan 24 18:25:01 ns311475 /USR/SBIN/CRON[16252]: (root) CMD (/usr/local/ispconfig/server/server.sh 2>&1 > /dev/null | while read line; do echo `/bin/date` "$line" >> /var/log/ispconfig/cron.log; done) Jan 24 18:25:01 ns311475 /USR/SBIN/CRON[16253]: (getmail) CMD (/usr/local/bin/run-getmail.sh > /dev/null 2>> /dev/null) Jan 24 18:25:01 ns311475 dovecot: imap-login: Disconnected (no auth attempts in 0 secs): user=<>, rip=127.0.0.1, lip=127.0.0.1, secunetworking, session=<3xFlL2kNAAB/AAAB> Jan 24 18:25:01 ns311475 dovecot: pop3-login: Disconnected (no auth attempts in 0 secs): user=<>, rip=127.0.0.1, lip=127.0.0.1, secunetworking, session=<rhRlL2kNvwB/AAAB> Jan 24 18:25:01 ns311475 postfix/smtpd[16279]: connect from localhost.localdomain[127.0.0.1] Jan 24 18:25:01 ns311475 postfix/smtpd[16279]: lost connection after CONNECT from localhost.localdomain[127.0.0.1] Jan 24 18:25:01 ns311475 postfix/smtpd[16279]: disconnect from localhost.localdomain[127.0.0.1] 

No entiendo la primera línea, supongo que el rest está tratando de enviar el problema por correo electrónico, pero no tengo nada.

Debian tiene un package para que usted se encargue de eliminar, comprimir y rotar los datos de MySQL. Puede instalarlo con el siguiente command:

$ sudo apt-get install automysqlbackup

Después de esto, los volcados diarios, semanales y mensuales se colocarán en / var / lib / automysqlbackup

Lea el manual fino: man 5 crontab : Allí verá que "%" tiene un significado especial para cron.

Eso está trastabillando tu command previsto.

aparte de esto, esta es una muy mala manera de comenzar una copy de security mySQL:

  • Su contraseña de root-DB aparecerá en la list de processs visible para cada usuario local o cada usuario con acceso de lectura snmp
  • No debe iniciar una subshell en un shell sin un motivo aparente. Use "$ (command)" en su lugar.
  • gzip solo usará una CPU. Entonces esa parte ralentizará tu copy de security completa

Debieras:

  • Coloque su contraseña de root-DB en un file (.mysql, algo que no recuerdo la syntax exacta y el nombre de ese file) en la carpeta raíz, solo accesible desde la raíz. Esto habilitará el inicio de session de raíz automático con la contraseña de mySQL
  • Coloque lo que está haciendo en un script propio en / usr / local / sbin (también es posible leerlo solo para root y un grupo de confianza)
  • Llamar a ese script a través de cron.
  • Use las routes completas para todos los commands en esa secuencia de commands. Cron podría no ejecutarse en un entorno con todas las routes "habituales" establecidas
  • Usa pgzip o si tienes el espacio disponible, comprime después de que la copy de security esté list