web-dev-qa-db-ja.com

crontabを使用してメールでバックアップを送信する

このcronジョブを使用して、毎日01:00 a.m.に/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構文を使用する必要がありますか?

3
Basj

この次のコマンドは、自分のマシンでテストしたときに機能しました。

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

参照

https://stackoverflow.com/a/9524359/1742825

4
Ramesh

最初に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コマンドを使用していつでも実行できます。

1