繁体   English   中英

Linux cron作业通过命令从电子邮件输出

[英]Linux cron job to email output from a command

我想运行一个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

您的脚本有几个问题,我在下面对其进行了更改,请仔细注意空格的更改, 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

我尝试了第一种方法,但是有一个错误,只需稍作修改即可正常工作:

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!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM