我有一个cron作业,基本上是这样的:Unix的重定向脚本
*/3 * * * * ruby myscript.rb > /my/location/file.txt
myscript.rb基本上是这样的:
#!/usr/bin/env ruby
sleep(120)
puts "Hello"
所以每三分钟我正在运行一个脚本,在写入STDOUT之前运行两分钟。 (实际上,myscript.rb发出大量的HTTP请求,而不是在睡觉,我怀疑这是重要的时间。)
奇怪的结果是,在一段时间内,/ my/location/file .txt是空的。
它似乎就好像脚本启动,文件被清空,并且只有当脚本到达结尾时才有数据写入文件。
虽然这不是* nix重定向的工作方式,对吧?
可能会发生一些缓冲,并且您可能希望在脚本中添加一些刷新功能,例如, '$ stdout.flush' –