我创建了一个脚本,每天晚上在我的Linux服务器上运行,使用mysqldump
将我的每个MySQL数据库备份到.sql文件,并将它们打包成一个压缩的.tar文件。 我想完成的下一步是通过电子邮件将该tar文件发送到一个远程电子邮件服务器上进行保管。 我已经能够通过管道将备份文本文件发送到mailx
这样在邮件正文中发送原始脚本。
$ cat mysqldbbackup.sql | mailx [email protected]
cat
呼应备份文件的文本,并将其输送到mailx
程序中,并将收件人的电子邮件地址作为参数传递。
虽然这完成了我所需要的,但我认为还可以更进一步,是否有办法,使用shell脚本或其他方式,将压缩的.tar文件作为附件发送到发出的电子邮件中?这将避免处理非常长的电子邮件,其中包含头数据,并经常有文字包装问题等。
通过查看man mailx
,mailx程序没有附加文件的选项。你可以使用另一个程序,如mutt。
echo "This is the message body" | mutt -a file.to.attach -s "subject of message" [email protected]
mutt的命令行选项可以用mutt -h
显示。
根据你的linux版本,它可能被称为mail。 引用上面@David的话。
mail -s "Backup" -a mysqldbbackup.sql [email protected] < message.txt
或者也可以。
cat message.txt | mail -s "Backup" -a mysqldbbackup.sql [email protected]