Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cron和Ruby。。是不是;放置“系统命令”;有什么事吗?_Ruby_Linux_Cron_Tar_Crontab - Fatal编程技术网

Cron和Ruby。。是不是;放置“系统命令”;有什么事吗?

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 =

关于使用ruby的cron的快速问题

我有一个运行的脚本

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(…)
这应该有效-请提供更多详细信息。