我尝试使用这些命令来测试我的shell脚本:
logger "hello i am fun" | tee -a test
但是测试文件仍然是空的。我也试过使用echo
echo "hello i am fun" |tee -a test >logger
写入测试文件也失败了。如何将记录器与tee -a一起使用?
答案 0 :(得分:0)
logger
有一个-s
标记:
-s将消息输出到标准错误以及系统 日志中。
您可以使用-s
将邮件记录到标准错误。
然后将stderr重定向到stdout,然后将stdout重定向到/dev/null
。
将整个内容传递到tee
,您最终会在系统日志中显示您的消息以及您在tee
中指定的路径。
示例:
joeyoung$ logger -s -p local0.notice -t TEST "test message" 2>&1 >/dev/null | tee -a /tmp/teetemp.log
Oct 3 11:11:54 localhost TEST[4231] <Notice>: test message
joeyoung$ tail -n1 /var/log/messages
Oct 3 11:11:54 localhost TEST[4231]: test message
joeyoung$ cat /tmp/teetemp.log
Oct 3 11:11:54 localhost TEST[4231] <Notice>: test message
为了获得正确的归因,我们会从https://stackoverflow.com/a/2342841/2744166
中获取一些灵感