Agregar líneas a cron desde el script


Respuestas:


49

Puede hacer eco de la línea en la parte inferior del crontab de usuarios actuales de esta manera:

#!/bin/bash

line="* * * * * /path/to/command"
(crontab -u userhere -l; echo "$line" ) | crontab -u userhere -

+1 porque me ganaste (tuve un error de script durante la prueba: D). Creo que hay que agregar 1 cosa: el sistema necesita ser informado de que cronse modificó.
Rinzwind

¡Sabía que esta sería una carrera para obtener respuesta! Tienes razón en que cron necesita ser notificado. Esta es la razón por la que no puedes simplemente hacer eco del comando al final del crontab. He probado que el script anterior funciona y cron comienza a ejecutar el comando.
Richard Holloway

13
Ah, y creo que esto también se equivoca si crontabese usuario aún no existe (?)
Rinzwind

77
Le advierte que los usuarios crontab no existe, si ese es el caso, pero luego lo creará. Estoy votando sus comentarios como perspicaces.
Richard Holloway

3

Si desea editar un valor en su crontab, puede hacer algo como:

$ crontab -l | sed -e 's/foo/bar/' | crontab -

Obviamente, debe tener cuidado con su sustitución para asegurarse de que solo coincida con la (s) línea (s) que desea cambiar; de lo contrario, todos foosse cambian a bars(en este ejemplo).

La ventaja de este método es que no está reemplazando todo el crontab. (Una pinza metafórica en lugar de un mazo).

Puede usar cualquier comando de edición en lugar de sed . Por ejemplo, si desea utilizar ed para retocar una línea que comienza así:

2 * * * * /sbin/flitch --days 3,4 > /var/log/flitch.out 2>&1

Digamos que esta línea se encuentra entre muchas líneas o tiene muchas crontabs diferentes para actualizar en diferentes sistemas y solo sabe que su línea será la única línea con el término flitchen ella.

Podría verse así:

$ cat /tmp/edscript
/flitch
s/3/9/
w
q
$ crontab -l > /tmp/out && ed /tmp/out < /tmp/edscript && crontab - < /tmp/out
$ crontab -l
...
2 * * 1 * /sbin/flitch --days 9,4 > /var/log/flitch.out 2>&1
...

Ahora debo admitir que casi el 100% del tiempo sed hará lo que hará Ed , pero siempre es bueno tener una herramienta adicional en la navaja suiza. ^. ^

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.