reiniciar minutos manualmente log instalar ejemplos ejecutar editar cada cron crontab

minutos - Cron Job-Cómo enviar un archivo de salida a un correo electrónico



instalar crontab ubuntu (3)

Desde una perspectiva crond, más precisa es colocarla en tu cron:

[email protected] * * * * * /var/www/dir/sh/mysql_dumb.sh * * * * * /var/www/dir/sh/other.sh * * * * * /var/www/dir/sh/other2.sh

Tengo esta línea en crontab:

* * * * * /var/www/dir/sh/mysql_dumb.sh | mail -s "mysql_dump" [email protected]

(cada minuto solo una muestra)

Entonces, todo funciona bien, pero el correo electrónico está vacío.

ACTUALIZAR:

La salida de mysql_dumb.sh es un archivo *.sql y guardan el archivo en un directorio.

¿Cómo puedo enviar una copia (archivo * .sql) desde esta salida -> mysql_dumb.sh a mi correo electrónico?

mysql_dumb.sh:

#!/bin/bash PATH=/usr/bin:/bin SHELL=/bin/bash /usr/bin/mysqldump -u USER -pPASS DATABASE > /var/www/dir/backup/backup_DB_`date +%d_%m_%Y`.sql


Mire 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

El > está redirigiendo la salida de mysqldump al archivo /var/www/dir/backup/backup_DB_ date +% d_% m_% Y .sql

¿Desea almacenar una copia de seguridad de la base de datos localmente?

De lo contrario, > /var/www/dir/backup/backup_DB_`date +%d_%m_%Y`.sql el > /var/www/dir/backup/backup_DB_`date +%d_%m_%Y`.sql y > /var/www/dir/backup/backup_DB_`date +%d_%m_%Y`.sql 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 volverá a colocar la salida en la salida estándar, que luego será recogida por crontab.

Cambiaría la última línea de mysql_dumb.sh para que sea: /usr/bin/mysqldump -u USER -pPASS DATABASE | tee /var/www/dir/backup/backup_DB_`date +%d_%m_%Y`.sql /usr/bin/mysqldump -u USER -pPASS DATABASE | tee /var/www/dir/backup/backup_DB_`date +%d_%m_%Y`.sql

De nuevo, 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 del archivo que se está escribiendo y luego leer correctamente. Si bien esa puede ser una pequeña diferencia, en mi experiencia usar tee será más confiable.


Si la secuencia de comandos informa de errores, es posible que se stderr a stderr , pero solo está redireccionando stdout . Puede redireccionar stderr agregando 2>&1 al comando:

* * * * * /var/www/dir/sh/mysql_dump.sh 2>&1 | mail -s "mysql_dump" [email protected]