私のLinuxサーバー上で毎晩実行されるスクリプトは、mysqldump
を使用して、それぞれのMySQLデータベースを.sqlファイルにバックアップし、それらを圧縮した.tarファイルとしてパッケージ化します。 次にやりたいことは、そのtarファイルをメールでリモートのメールサーバーに送り、保管することです。 バックアップのテキストファイルを次のようにmailx
にパイプすることで、生のスクリプトを電子メールの本文に送ることができました。
$ cat mysqldbbackup.sql | mailx [email protected]
シェルスクリプトなどを使って、圧縮された.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]
mutt]1を使って、添付ファイル付きのメールを送信することができます。
mutt -s "Backup" -a mysqldbbackup.sql [email protected] < message.txt