关于使用ruby的cron快速提问,
我有一个运行
的脚本puts `tar etc..`
我正在尝试调试为什么这个脚本没有像它应该那样编写文件..
当我手动调用它时它工作正常,我也看到了tar输出..
当它在cron作业中运行时,put实际上是做什么的吗?
由于
丹尼尔
答案 0 :(得分:3)
从crontab帮助页面:
如果标准输出和标准错误未被crontab条目执行的命令重定向,则任何生成的输出或错误都应通过实现定义的方法邮寄给用户。
我通常用于调试crontabs的是创建一个Logger:
logfile = File.open('/path/to/log.log', 'rw')
logger = Logger.new(logfile)
logger.debug('something')
答案 1 :(得分:1)
如果您有权安装宝石,可以尝试使用minitar,而不是依赖系统tar。
require 'zlib'
require 'archive/tar/minitar'
include Archive::Tar
File.open('test.tar', 'wb') do |tarfile|
Archive::Tar::Minitar::Writer.open(tarfile) do |tar|
Dir["file*"].each do |file|
if File.file?(file)
tar.add_file(file, :mode =>0644, :mtime =>Time.now) { |stream, io|
stream.write( File.open(file).read )
}
end
end
end
end