Acá un truco para cambiar una línea del cron desde la terminal. De esta forma podemos tener scripts que de forma automática cambien ejecuciones del cron cuando sea necesario y así tener aplicaciones más dinámicas.
La línea es simple:
(crontab -l |grep -v 'MiScript'; echo "1 * * * * /usr/bin/MiScript") | crontab
y funciona así:
Supongamos que actualmente nuestro cron contiene esta línea:
1 * * * * /usr/bin/MiScript
y lo queremos cambiar por:
1 * * * * /usr/bin/MiNuevoScript
Entonces tenemos:
Lo que está dentro del paréntesis, es una salida (output) concatenada:
(crontab -l |grep -v 'MiScript'; echo "1 * * * * /usr/bin/MiNuevoScript")
El comando anterior primero imprime el contenido actual del cron suprimiendo el script que queremos cambiar:
crontab -l |grep -v 'MiScript'
y luego concatena esa salida con la nueva línea que queremos incluir:
echo "1 * * * * /usr/bin/MiNuevoScript"
Luego, esta salida es redirigida al comando crontab:
| crontab
para que sustituya el contenido actual del cron con la salida que obtuvimos en los pasos anteriores.
Listo.
No hay comentarios.:
Publicar un comentario