我能够让我的脚本在另一位用户的帮助下定期给我发电子邮件。我的下一个问题是,如果输出不为空,我只想给它发电子邮件。
我有一个nawk设置给我发送电子邮件输出,脚本设置为每隔5分钟通过crontab运行一次。由于日志文件的数量,这意味着我每5分钟收到9封电子邮件,这会炸毁我的收件箱。
当前脚本:
nawk '$0~s{for(c=NR-b;c<=NR+a;c++)r[c]=1}{q[NR]=$0}END{for(c=1;c<=NR;c++)if(r[c])print q[c]}' b=4 a=4 s="Bind value for HASCHILDREN = 0" filename | mail -s "Output from crontask" myemail
当前的crontab:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /home/me/crontask
答案 0 :(得分:1)
为了测试nawk命令的输出,您需要将其保存在某处。我建议你使用一个变量:
output=$(
nawk '
$0 ~ s {for (c=NR-b; c<=NR+a; c++) r[c]=1}
{q[NR] = $0}
END {for (c=1; c<=NR; c++) if (r[c]) print q[c]}
' b=4 a=4 s="Bind value for HASCHILDREN = 0" filename
)
[[ "$output" ]] && mail -s "Output from crontask" me@example.com <<< "$output"
我认为你的shell是bash。
答案 1 :(得分:0)
使用Shelter的建议。我能够将结果输出到一个临时文件,然后运行他的if / then语句给自己发电子邮件,如果它不是null。我已经确认它现在正在运作。