He oído que crontab es una buena opción, pero ¿cómo escribo la línea y dónde la pongo en el servidor?
144
Aquí hay un buen tutorial sobre qué es crontab y cómo usarlo en Ubuntu. Su línea crontab se verá así:
00 00 * * * ruby path/to/your/script.rb
( 00 00indica medianoche - 0 minutos y 0 horas - y los *s significan todos los días de cada mes).
Sintaxis: mm hh dd mt wd comando mm minuto 0-59 hh hora 0-23 dd día del mes 1-31 mt mes 1-12 wd día de la semana 0-7 (domingo = 0 o 7) comando: lo que quieres ejecutar todos los valores numéricos pueden reemplazarse por *, lo que significa que todos
/etc/crontab(en Ubuntu), pero cuando ejecutacrontab -eestá editando un crontab específico del usuario, que no permite esta columna. IIRC Ubuntu desaconseja salir/etc/crontabmanualmente porque puede sobrescribirse. Ver aquí: stackoverflow.com/questions/8475694/…sudo crotab -u root -edesde la página del manual
Es bueno tener en cuenta los "apodos" especiales que se pueden usar (documentados en la página de manual), en particular "@reboot", que no tiene una alternativa de fecha y hora.
También puede usar este truco para ejecutar su trabajo cron varias veces por minuto.
Para agregar un trabajo cron, puede hacer una de estas tres cosas:
agregue un comando al crontab de un usuario, como se muestra arriba (y de crontab, sección 5, página man).
crontab -e -u <username>crontab -eEDITORvariable de entornoenv EDITOR=nano crontab -e -u <username>export EDITOR=vimcrontab -echmod a+x <file>cree un script / programa como trabajo cron y agréguelo a los
/etc/cron.*lydirectorios anacron del sistemachmod a+x /etc/cron.daily/script_runs_daily.sh- hazlo ejecutableman anacronchmod a+x <file>/etc/crontabo se/etc/anacrontabejecutan a una hora establecida/etc/anacrontab, y definen cron.hourly en/etc/cron.d/0hourlyO, uno puede crear crontables del sistema en
/etc/cron.d./etc/cron.dno necesitan ser ejecutables.someuser, y el uso de/bin/bashcomo el shell es forzado.fuente
A veces necesitará especificar PATH y GEM_PATH usando crontab con rvm.
Me gusta esto:
fuente
Guía rápida para configurar un trabajo cron
Cree un nuevo archivo de texto, por ejemplo: mycronjobs.txt
Para cada trabajo diario (00:00, 03:45), guarde las líneas de programación en mycronjobs.txt
Envíe los trabajos a cron (cada vez que ejecuta esto, cron elimina lo que se ha almacenado y se actualiza con la nueva información en mycronjobs.txt )
Información extra útil
Ver trabajos cron actuales
Eliminar todos los trabajos cron
fuente
Puede ejecutar el script de shell de dos maneras, ya sea utilizando el trabajo cron o escribiendo un script de shell
Supongamos que el nombre de su script es "yourscript.sh"
Primero verifique el permiso del usuario del script. use el siguiente comando para verificar el permiso del usuario del script
ll script.sh
Si la secuencia de comandos está en la raíz, utilice el siguiente comando
sudo crontab -e
En segundo lugar, si el script contiene al usuario "ubuntu", utilice el siguiente comando
crontab -e
Agregue la siguiente línea en su crontab: -
55 23 * * * /path/to/yourscript.sh
Otra forma de hacerlo es escribir un script y ejecutarlo en el fondo
Aquí está el script donde debe poner el nombre del script (por ejemplo: - youscript.sh) que se ejecutará a las 23:55 pm todos los días
#!/bin/bash while true do /home/modassir/yourscript.sh sleep 1d doneguárdelo en un archivo (nombremos "every-day.sh")
dormir 1d: significa que espera un día y luego vuelve a funcionar.
ahora dé permiso a su script. use el siguiente comando: -
chmod + x every-day.sh
ahora, ejecute este script de shell en segundo plano usando "nohup". Esto seguirá ejecutando el script incluso después de cerrar sesión en su sesión.
use el siguiente comando para ejecutar el script.
nohup ./every-day.sh &
Nota: - para ejecutar "yourscript.sh" a las 23:55 pm todos los días, debe ejecutar el script "every-day.sh" exactamente a las 23:55 pm.
fuente
Pon esta frase en un archivo crontab: 0 0 * * * / usr / local / bin / python /opt/ByAccount.py> /var/log/cron.log 2> & 1
fuente