Ok, así que hice mi script, lo dejé caer y /etc/cron.hourly
luego chmod 777
el archivo pero no se ejecutará (automáticamente). Si lo ejecuto manualmente, funciona bien. ¿Necesito hacer algo más?
cron-jobs
command-line
crontab
cron
Switchkick
fuente
fuente
Respuestas:
¿Por qué no usar crontab (/ etc / crontab) y usar * / 1 en el campo de la hora? He usado esto para ejecutar un script cada 5 minutos y funciona bien:
fuente
cron.daily
y amigos funciona un poco mejor si la máquina no está funcionando todo el tiempo, porque anacron intenta aproximarse al horario correcto, mientras que cron simple simplemente no los ejecutará si la máquina no está encendida toda la noche. Para trabajos por hora, esto probablemente no importa tanto./etc/crontab
:cron.daily
,cron.weekly
ycron.monthly
ejecuta con anacron (si está disponible), pero por horarun-parts --report /etc/cron.hourly
.Las entradas en
cron.hourly
son ejecutadas por el mecanismo run-parts (man run-parts
para más información). Yrun-parts
es exigente con los nombres de archivo que considera válidos.Por ejemplo, darle una extensión a su secuencia de comandos la invalidará y dará como resultado que el trabajo no se ejecute.
[a-zA-Z0-9_-]
son los caracteres válidos, entonces el '.' lo invalidaAl agregar un trabajo a
/etc/cron.hourly
(o.daily
,.weekly
, etc.), se recomienda probar más tarde querun-parts
en realidad va a ejecutarlo con el comando:Si al ejecutar este comando muestra su archivo, significa que funcionó. De lo contrario, si no muestra nada, su nombre de archivo no es válido.
¿Cómo se llamaba tu guión?
fuente
giving your script an extension will make it invalid and result in the job not being run
--report
para ejecutar realmente los scripts.Su problema probablemente se deba a los permisos excesivamente abiertos, que permiten a cualquiera editar su archivo. Intenta en su
755
lugar.Buscar en las entradas cron en su salida de syslog debería confirmar esto.
fuente
La respuesta de DaithiF debería ser la respuesta correcta.
Además, mi guión no tenía
#!/bin/bash
en la primera línea. Aunque el script se pudo ejecutar con la línea de comando, lorun-parts
rechazó diciendo "Error de formato de ejecución ".Cambiar el nombre de archivo de
scriptname.sh
ascriptname
y añadiendo el#!/bin/bash
en primera línea habilitada mi script para ejecutar por hora.fuente
Cuando corres
¿Esta tarea está en la lista?
si no, agréguelo
agrega esta línea
si está en esta lista, intente agregar la ruta del lenguaje de programación a la parte superior de su script
Ejemplo:
Estas 2 cosas siempre resolvieron mis problemas :)
fuente