Задание Linux cron для вывода электронной почты из команды - PullRequest
0 голосов
/ 04 марта 2011

Я хотел бы запустить задание cron для резервного копирования некоторых баз данных mysql, отправив выходные данные в файл и отправив его по электронной почте.

Будет ли работать следующее?

15 2 * * * root mysqldump -u root -pPASSWORD --all-databases | \
    gzip > /database_`data'+%m-%d-%Y'`.sql.gz | \
    mail -s "Report 05/06/07" user@example.com < /database_`data'+%m-%d-%Y'`.sql.gz

Ответы [ 2 ]

4 голосов
/ 04 марта 2011

Есть несколько проблем с вашим сценарием, я изменил его ниже, внимательно обратите внимание на изменение пробелов, написание date и замену | на ;.

Однако самая интересная проблема заключается в том, что mail, к сожалению, не может отправлять вложения. Вы можете использовать uuencode для встраивания файла в почту, используя:

15 2 * * * root mysqldump -uroot -pPASSWORD --all-databases | gzip > /database_`date +'%m-%d-%Y'`.sql.gz ; uuencode /database_`date +'%m-%d-%Y'`.sql.gz /dev/stdout | mail -s "Report 05/06/07" user@domain.com

Или, если вы хотите правильно использовать вложение MIME (вам понадобится установленный MetaMail):

15 2 * * * root mysqldump -uroot -pPASSWORD --all-databases | gzip > /database_`date +'%m-%d-%Y'`.sql.gz ; metasend -b -t user@domain.com -s "Report 05/06/07" -m application/gzip -f /database_`date +'%m-%d-%Y'`.sql.gz

Или как указано выше с установленным mpack вместо MetaMail:

15 2 * * * root mysqldump -uroot -pPASSWORD --all-databases | gzip > /database_`date +'%m-%d-%Y'`.sql.gz ; mpack -s "Report 05/06/07" -c application/gzip /database_`date +'%m-%d-%Y'`.sql.gz user@domain.com
0 голосов
/ 03 апреля 2013

Я попробовал первый вариант, но с ошибкой, с небольшой модификацией он работал нормально:

15 2 * * * root mysqldump -e --user=root --password=PASSWORD --all-databases | gzip | uuencode `date +'%Y%m%d'`-database.sql.gz | mail -s "`date +'%Y%m%d'`-web1_iepe-wp.sql.gz mysqldump backup" user@domain.com

Tks!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...