2009-10-21 80 views

回答

5

在我的Linux機器

crontab -u userName -l > fileName 

列表,以便在文件名用戶名crontab文件。

然後,我會使用紅寶石(或其他語言)腳本來更新文件。

最後我會用

crontab -u userName fileName 

更新crontab的用戶名

+0

感謝張貼此解決方案。我想我會試試這個。 – tdewell 2009-10-22 03:35:51

15

退房的Whenever寶石 - 這可以被拉伸超出你打算做什麼,但它使用非常簡單(Ruby)語法,並使其在capistrano部署腳本中設置cron作業變得非常簡單。

+0

謝謝。這是一個整潔的外觀。 – tdewell 2009-10-22 03:34:33

+0

這真是太棒了 - 我在幾個應用程序部署中使用它進行生產。 – bensie 2009-10-22 05:10:07

+0

看完這個答案後,我決定嘗試這個爲我自己的項目。很棒! Ryan Bates在使用Whenever時加入了一個railscast情節:http://railscasts.com/episodes/164-cron-in-ruby – 2011-11-30 21:00:35

0

爲什麼不包含一個可以安裝到/etc/cron.d的crontab?

+0

爲什麼這會被低估? – matheeeny 2015-02-05 01:24:58

4

因爲你有一個變量集是:new_user

和您正在使用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

太棒了!非常感謝! – 2012-07-09 08:40:04

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