Por ejemplo, puedo registrar stderr
un script de esta manera:
* * * * * run_script.sh > /var/log.txt 2>&1
Pero quiero registrar stderr
todos los scripts en mi crontab. Puedo agregar > /var/log.txt 2>&1
a todos los scripts, pero no es bueno si tengo cientos de scripts cron
. ¿Hay otra forma más simple de hacer esto?
fuente
Como utiliza el correo local, realmente no necesita configurar nada, o tal vez simplemente instalar mailx si aún no está aquí. Cron le enviará la salida, puede guardar el correo en un archivo y hacer muchas cosas desde allí. Intentar modificar la forma en que cron funciona para satisfacer directamente sus necesidades no es el camino a seguir. Si no lo cree así, solo parche y vuelva a compilar cron, llámelo my_cron y úselo en lugar de cron. Y prepárate para mantener tu my_cron actualizado y reconstruirlo con frecuencia.
Agregue esto al comienzo de todos sus scripts para registrar todo y detenerse en el primer error
fuente
> /var/log/YOUR_LOG_FILE 2>&1
es decir, primero redirige stdout a un archivo y solo luego redirige stderr a stdout (que ahora apunta al archivo).El script de Ryan Ye en /programming//a/7145618/20774 también es útil para esto, aunque lo hace tanto stdout como stderr.
fuente