2015-11-10 21 views
1

如何創建每日任務以運行將結果輸出到通過電子郵件發送的文件的命令?創建每日任務以運行命令

我想運行下面的命令:

find ./ -type f -size 510c -name "*.php" -mtime -3 
在以下位置

/var/www/vhosts/ 

我想補充這cron作業,所以我得到的內容只有在通過電子郵件發送文件不是空的。

完成此操作的最佳方法是什麼?

回答

1

也許可以寫一行代碼來做到這一點,但如果沒有,你可以寫一個腳本。下面是一個Perl腳本,應該做的工作:

use warnings; 
use strict; 

my($cmd, $r); 
my($to, $from, $subject, $message); 

$cmd="find /var/www/vhosts/ -type f -size 510c -name \"*.php\" -mtime -3"; 
$r=`$cmd`; 

if(length($r)>0) { 
    $to = '[email protected]'; 
    $from = '[email protected]'; 
    $subject = 'This is the subject'; 
    $message = $r; 

    open(MAIL, "|/usr/sbin/sendmail -t"); 

    # Email Header 
    print MAIL "To: $to\n"; 
    print MAIL "From: $from\n"; 
    print MAIL "Subject: $subject\n\n"; 
    # Email Body 
    print MAIL $message; 

    close(MAIL); 
} 

就在這個保存到一個文件(例如script.pl),然後只需添加一行到你的crontab像這樣:

x x x x x perl /path/to/script.pl