Крон и Руби. Делает ли что-нибудь "системная команда"? - PullRequest
2 голосов
/ 28 февраля 2011

Быстрый вопрос по cron с ruby,

У меня есть скрипт, который запускается

puts `tar etc..`

Я пытаюсь отладить, почему этот скрипт не собирает файлы так, как должен..

Он работает нормально, когда я запускаю его вручную, и я вижу вывод tar тоже ..

Делает ли пут на самом деле что-нибудь, когда запускается в задании cron?

Спасибо

Даниил

Ответы [ 2 ]

3 голосов
/ 28 февраля 2011

Со страницы помощи crontab:

Если стандартный вывод и стандартная ошибка не перенаправляются командами, выполняемыми из записи crontab, любой сгенерированный вывод или ошибки должны быть отправлены по почте через метод, определенный реализацией, пользователю.

Что я обычно делаю для отладки crontabs - это создание Logger:

logfile = File.open('/path/to/log.log', 'rw')
logger = Logger.new(logfile)
logger.debug('something')
1 голос
/ 28 февраля 2011

если у вас есть права на установку гемов, вы можете попробовать мини-гитару, вместо зависимости от системного 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
...