Contamos con tu apoyo para extender nuestros tutoriales acerca de las ciencias informáticas.
Solución:
Si el script informa errores, es posible que vayan a stderr
pero solo estás redirigiendo stdout
. puedes redirigir stderr
añadiendo 2>&1
al comando:
* * * * * /var/www/dir/sh/mysql_dump.sh 2>&1 | mail -s "mysql_dump" [email protected]
Desde una perspectiva crond, más preciso es colocarlo en tu cron:
[email protected]
* * * * * /var/www/dir/sh/mysql_dumb.sh
* * * * * /var/www/dir/sh/other.sh
* * * * * /var/www/dir/sh/other2.sh
Mira la última línea de mysql_dumb.sh:
/usr/bin/mysqldump -u USER -pPASS DATABASE > /var/www/dir/backup/backup_DB_`date +%d_%m_%Y`.sql
los >
está redirigiendo la salida de mysqldump
al archivo /var/www/dir/backup/backup_DB_
fecha +%d_%m_%Y.sql
¿Desea almacenar una copia de seguridad de la base de datos localmente?
Si no, saque el > /var/www/dir/backup/backup_DB_`date +%d_%m_%Y`.sql
y vuelva a colocar la entrada crontab en
* * * * * /var/www/dir/sh/mysql_dump.sh 2>&1 | mail -s "mysql_dump" [email protected]
Si desea una copia del archivo localmente, sugeriría usar tee
que escribirá la salida en el archivo y la devolverá a la salida estándar, que más tarde será recogida por crontab.
Cambiaría la última línea de mysql_dumb.sh
ser – estar:
/usr/bin/mysqldump -u USER -pPASS DATABASE | tee /var/www/dir/backup/backup_DB_`date +%d_%m_%Y`.sql
Nuevamente, cambiaría la entrada de crontab a:
/usr/bin/mysqldump -u USER -pPASS DATABASE > /var/www/dir/backup/backup_DB_`date +%d_%m_%Y`.sql
La ventaja aquí es que el correo puede leer la información de la salida estándar y no depende de que el archivo se escriba y luego se lea correctamente. Si bien esa puede ser una pequeña diferencia, en mi experiencia, usar te será más confiable.
Si haces scroll puedes encontrar las interpretaciones de otros administradores, tú igualmente tienes la habilidad dejar el tuyo si te gusta.