sendmail尴尬输出.MySQL备份列表



我正在使用此脚本从我们的备份目录中获取文件列表及其大小。这很好,但是我想做的就是将结果发送给dbadistro@abc.com。我们在服务器中使用sendmail。请帮忙。这是脚本:

#!/bin/bash
HEADER="nLIST OF BACKUPS IN $(hostname):/backups/$1/$2:n"
echo -e $HEADER
ls -lth "/backups/$1/$2" | awk 'BEGIN {print "FILE_NAMEtttDATEttSIZEn--------------------------------------------------------"} NR>1 {printf "%stt%s-%s %st%sn",$9,$6,$7,$8,$5}'

脚本输出样本:

LIST OF BACKUPS IN server1:/backups/mysql/daily:
FILE_NAME                    DATE          SIZE
--------------------------------------------------------
meb.20140108-030003.img     Jan-08 19:35    90G
meb.20140107-030003.img     Jan-07 19:35    87G
meb.20140106-030003.img     Jan-06 19:35    99G
meb.20140105-030003.img     Jan-05 19:35    98G

我想每天将此输出通过电子邮件发送给我。请帮助。

cron运行脚本。使用crontab中的MAILTO=指定在哪里通过电子邮件发送其输出的位置。

请参阅mail -S5 controntabman crontab

这是一个bash脚本。使用本地邮件代理。

#!/bin/bash
set -e
out='/tmp/some_random_file_or_something'
mutt -e 'my_hdr From:god@backup.com' -s "[BACKUPS ARE READY! ;)] $(date)." your@email.com -c yourhome@email.com < $out
rm -f $out

在cronjob中的命令下方。例如,每天凌晨5点发送邮件

0 5 * * * bash /FULL_PATH/yourscript.sh

通常,如果您的系统具有SendMail,则应支持mailx命令,这更容易。

$ cat yourscript.sh

#!/bin/bash
HEADER="nLIST OF BACKUPS IN $(hostname):/backups/$1/$2:n"
echo -e $HEADER
ls -lth "/backups/$1/$2" | awk 'BEGIN {print "FILE_NAMEtttDATEttSIZEn--------------------------------------------------------"} NR>1 {printf "%stt%s-%s %st%sn",$9,$6,$7,$8,$5}' > temp
cat temp|mailx -s "backup report on `date`" dbadistro@abc.com

相关内容

  • 没有找到相关文章