2009-10-21 12 views

Odpowiedz

5

Na moim polu linux

crontab -u userName -l > fileName 

wymienia plików crontab dla nazwę użytkownika w pliku.

Wtedy używam Ruby (lub w innym języku) skrypt do aktualizacji pliku.

Wreszcie chciałbym użyć

crontab -u userName fileName 

zaktualizować crontab o nazwę użytkownika

+0

Dzięki za komentarz tego rozwiązania. Myślę, że spróbuję tego. – tdewell

15

Sprawdź Whenever gem - może to być rozciąganie poza to, co masz zamiar zrobić, ale używa bardzo prosty (Ruby) i sprawia, że ​​ustawianie zadań cron w skryptach wdrażania capistrano staje się bardzo proste.

+0

Dzięki. To jest czysty klejnot. – tdewell

+0

To fantastyczne - używam go w produkcji na kilku wdrożeń aplikacji. – bensie

+0

Po przeczytaniu tej odpowiedzi postanowiłem spróbować to dla mojego własnego projektu. Działa świetnie! Ryan Bates ułożyła epizod railscast na wykorzystaniu Ilekroć: http://railscasts.com/episodes/164-cron-in-ruby –

0

Dlaczego nie obejmują crontab, które mogą być zainstalowane na /etc/cron.d?

+0

Dlaczego ta downvoted? – matheeeny

4

zważywszy, że masz zestaw, który jest zmienny: new_user

i że używasz use_sudo true

desc "install crontab" 
task :install_crontab do 
    run "echo '0 23 * * * /home/#{new_user}/scripts/backup_#{new_user}.sh' | #{sudo} crontab -u #{new_user} -" 
end 
+0

świetnie! wielkie dzięki! –

4
def crontab_add(line) 
    config = capture(%Q{crontab -l}).split "\n" 
    return if config.include? line 
    run %Q{(crontab -l; echo "#{line}") | crontab -} 
end