一行mailコマンドでメールを飛ばす

標準入力にメールのBodyの内容を渡してあげれば一行でいける。

echo "これがメールのBodyです。" | mail -s "Subjectです" mail@example.com


応用編

MySQLの内容を他のサーバーにダンプし、終わったらメールを飛ばす。
さらにこれをバックグラウンドで実行する。

まずはダンプ先にからのデータベースを作成しておく必要がある。

mysql -u mysql -uuser -ppassword -e "CREATE DATABASE db_name;"

括弧でコマンドをグループ化する事で全体をバックグラウンドにまわせる。

(mysqldump -h example.com -uuser -ppassword db_name | mysql -uuser -ppassword db_name; echo "mysqldump is complete." | mail -s "From MySQL Server" mail@example.com) &