我使用这项工作在每天凌晨 01:00cron
进行备份:/home/blah/
0 1 * * * tar -zcf /home/blah/backup.tgz /home/blah/
事实上我更喜欢这样我会收到一封电子邮件,其中包含 .tgz 文件作为附件。 (是的,文件大小始终小于 5 MB,因为我的文件夹非常小)
我可以做类似的事情吗:
0 1 * * * mail -s "Backup blah" "[email protected]" --attachment=(tar -zcf /home/blah/backup.tgz /home/blah/)
(这是伪代码在最后)在 cron 任务中?我应该使用什么 cron 语法?
答案1
当我在我的机器上进行测试时,以下命令对我有用。
echo "This is the message body" | mutt -a "/path/to/file.to.attach" -s "subject of message" -- [email protected]
因此,遵循的方法可能是这样的,
tar -zcf /home/blah/backup.tgz /home/blah/
echo "Please find attached the backup file" | mutt -a "/home/blah/backup.tgz" -s "File attached" -- [email protected]
我将上面的脚本保存为backup_email.sh
并将 cron 作业安排为,
0 1 * * * /path/to/backup_email.sh
参考
答案2
我会先安装 ZIP,然后安排备份。
zip system.zip /etc/* /var/www/* /var/lib/mysqlbackup/default/* && sleep 3 | mutt -a "system.zip" -s "Daily backup as of $(date +%x)" -- [email protected] && rm -rf system.zip
然后 crontab 就可以了
您还可以在 bashrc 文件中为其添加别名,这样您就可以随时执行整个命令。
在 bashrc 文件的最底部添加:
alias backup='zip system.zip /etc/* /var/www/* /var/lib/mysqlbackup/default/* && sleep 3 | mutt -a "system.zip" -s "Daily backup as of $(date +%x)" -- [email protected] && rm -rf system.zip '
所以你的 crontab 会像
0 0 * * * backup
您可以随时使用自己的backup
命令运行此备份。