我的 cron 作业正在运行以下行:
*/40 * * * * cd /home/qa/prod/seo/casino && make testv 2> /dev/stdout | /usr/sbin/sendmail -t [email protected]
如您所见,我正在使用 sendmail 包。我没能找到如何将主题添加到当前正在运行的 cron 计划中。
我遇到过以下情况:
echo "Subject: Testing" | cat - /home/file1.out | /usr/sbin/sendmail -t [email protected]
但是,我不知道在这种情况下“cat - /home/file1.out”管道起什么作用,或者如何将它与我自己的管道集成。
非常感谢您的帮助!
答案1
cat - /home/file1.out
为邮件正文。
-
在这种情况下表示 STDIN,cat 的 STDIN。
[sgeorge@sgeorge-ld ~]$ echo "Subject: Testing" | cat - file
Subject: Testing
TESTING TESTING
[sgeorge@sgeorge-ld ~]$ echo "Subject: Testing" | cat file
TESTING TESTING
事实上你实际上并不需要它:
[sgeorge@sgeorge-ld ~]$ cat test
Subject: Testing
TESTING TESTING
[sgeorge@sgeorge-ld ~]$ cat test | /usr/sbin/sendmail -t [email protected]
上述方法也与下面的方法相同
echo "Subject: Testing" | cat file | /usr/sbin/sendmail -t [email protected]
为了进一步理解:
[sgeorge@sgeorge-ld ~]$ echo "Subject: Testing" | cat file -
TESTING TESTING
Subject: Testing
[sgeorge@sgeorge-ld ~]$ echo "Subject: Testing" | cat - file
Subject: Testing
TESTING TESTING
所以这里-
只是一个STDIN
。
答案2
in告诉-
catcat -
从管道读取内容并将其打印到标准输出,这echo "Subject:Testing " | cat - /home/files1.out
意味着将“主题:测试”与 files1.out 的内容相结合。