我有一个红宝石脚本,写入STDOUT,有时STDERR。我每5分钟通过crontab运行这个脚本:
*/5 * * * * /root/myscript.rb >> /var/log/myscript.log 2>&1
我注意到的是日志文件不会被实时写入。相反,它等待脚本退出,然后立即写入该日志文件。我觉得我有其他脚本没有这种行为,但也许我弄错了。
它就是这样运作的吗?有什么需要我去改变的吗?
这里是Ubuntu 12.04
发布于 2013-07-25 14:10:05
让您的脚本日志到syslog而不是stdout。从长远来看,这样做比登录到stdout要灵活得多。
发布于 2013-07-25 14:15:48
啊,我发现Ruby不会在每次写调用之后自动刷新STDOUT/STDERR输出。我将STDOUT.sync = true
放在文件的顶部,现在它实时地写入STDOUT,从而写入日志文件。
https://serverfault.com/questions/526225
复制相似问题