Cron和Ruby。。是不是;放置“系统命令”;有什么事吗?
关于使用ruby的cron的快速问题 我有一个运行的脚本Cron和Ruby。。是不是;放置“系统命令”;有什么事吗?,ruby,linux,cron,tar,crontab,Ruby,Linux,Cron,Tar,Crontab,关于使用ruby的cron的快速问题 我有一个运行的脚本 puts `tar etc..` 我正在尝试调试为什么这个脚本没有像它应该的那样给文件涂上焦油 当我手动调用它时,它工作正常,并且我也看到了tar输出 当puts在cron作业中运行时,它真的做了什么吗 谢谢 Daniel来自crontab帮助页面: 如果标准输出和标准错误没有通过crontab条目执行的命令重定向,则任何生成的输出或错误都应通过实现定义的方法邮寄给用户 调试crontab时,我通常会创建一个记录器: logfile =
puts `tar etc..`
我正在尝试调试为什么这个脚本没有像它应该的那样给文件涂上焦油
当我手动调用它时,它工作正常,并且我也看到了tar输出
当puts在cron作业中运行时,它真的做了什么吗
谢谢
Daniel来自crontab帮助页面: 如果标准输出和标准错误没有通过crontab条目执行的命令重定向,则任何生成的输出或错误都应通过实现定义的方法邮寄给用户 调试crontab时,我通常会创建一个记录器:
logfile = File.open('/path/to/log.log', 'rw')
logger = Logger.new(logfile)
logger.debug('something')
如果您有安装gems的特权,可以尝试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
我不会说ruby,但不是只输出字符串吗?为什么我要调用
tar
?@hop Backticks是Ruby调用的一种方式,例如system(…)
这应该有效-请提供更多详细信息。