2009-10-21 40 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