Linuxのdfコマンドの実行結果をcronでメール送信する方法
定期的にLinuxサーバのハードディスクの残り容量を自ら確認しにいくのが面倒なので、メールで自動通知してくれたら良いのに、と思う時がある。そんな時は、dfコマンドの実行結果をcronでメール送信するようにしてやると、良いかもしれない。
毎時0分にシェルを実行するcronの例
0 * * * * /home/nobuneko/df.sh
実行するシェル(df.sh)の中身
#!/bin/sh
echo -e "`df -h`" | mail -s "nobuneko server df result" test@nobuneko.com
シェルの実行により届くメールの内容
メールタイトル:
nobuneko server df result
メール本文:
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 3.8G 3.1G 505M 87% /
/dev/sda3 90G 64G 22G 76% /home
/dev/sda1 46M 24M 21M 54% /boot
tmpfs 1006M 0 1006M 0% /dev/shm
《備考》
echo "`df -h`" | mail -s "nobuneko server df result" test@nobuneko.com
といったように、echoコマンドに-eオプションをつけないと、以下のようにdfコマンドの結果が改行なし(改行コードなし)でメールされてしまうので注意が必要。
Filesystem Size Used Avail Use% Mounted on /dev/sda2 3.8G 3.1G 505M 87% / /dev/sda3 90G 64G 22G 76% /home /dev/sda1 46M 24M 21M 54% /boot tmpfs 1006M 0 1006M 0% /dev/shm
echoコマンドの結果に改行コードを含めるには、
echo -e "`df -h`" | mail -s "nobuneko server df result" test@nobuneko.com
といったように-eコマンドが必要だ。