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 00
indica 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 -e
está editando un crontab específico del usuario, que no permite esta columna. IIRC Ubuntu desaconseja salir/etc/crontab
manualmente porque puede sobrescribirse. Ver aquí: stackoverflow.com/questions/8475694/…sudo crotab -u root -e
desde 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 -e
EDITOR
variable de entornoenv EDITOR=nano crontab -e -u <username>
export EDITOR=vim
crontab -e
chmod a+x <file>
cree un script / programa como trabajo cron y agréguelo a los
/etc/cron.*ly
directorios anacron del sistemachmod a+x /etc/cron.daily/script_runs_daily.sh
- hazlo ejecutableman anacron
chmod a+x <file>
/etc/crontab
o se/etc/anacrontab
ejecutan a una hora establecida/etc/anacrontab
, y definen cron.hourly en/etc/cron.d/0hourly
O, uno puede crear crontables del sistema en
/etc/cron.d
./etc/cron.d
no necesitan ser ejecutables.someuser
, y el uso de/bin/bash
como 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 done
guá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