2009-10-21 11 views

Respuesta

5

En mi máquina Linux

crontab -u userName -l > fileName 

muestra el archivo crontab para el nombre de usuario en Nombre de archivo.

Luego usaría un script de ruby ​​(u otro idioma) para actualizar el archivo.

Por último me gustaría utilizar

crontab -u userName fileName 

para actualizar el crontab el nombre de usuario

+0

Gracias por publicar esta solución. Creo que intentaré esto. – tdewell

15

Mira la Whenever joya - esto se puede estirar más allá de lo que está la intención de hacerlo, pero utiliza muy simple (Ruby) sintaxis y hace que sea muy fácil configurar trabajos cron en una secuencia de comandos de implementación de Capistrano.

+0

Gracias. Esa es una gema de aspecto ordenado. – tdewell

+0

Es fantástico: lo estoy usando en producción en varias implementaciones de aplicaciones. – bensie

+0

Después de leer esta respuesta, decidí probar esto para mi propio proyecto. ¡Funciona genial! Ryan Bates armó un episodio de railscast sobre el uso de Whenever: http://railscasts.com/episodes/164-cron-in-ruby –

0

¿Por qué no incluir un crontab que se puede instalar en /etc/cron.d?

+0

¿Por qué está esto downvoted? – matheeeny

4

dado que tiene un conjunto variable que es: new_user

y que está utilizando 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

¡genial! ¡muchas gracias! –

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