我有一个基本上看起来像这样的 cron 工作:
*/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 重定向的工作原理,对吧?