Tengo un notify.sh
script que se parece a:
notify-send "hi welcome"
Mi notificación crontab para las 2 PM:
0 14 * * * home/hacks/notify.sh
Sin embargo, esto no funciona. ¿Cuál es el problema?
¡A tu script le falta un #! línea al comienzo, que es la magia interpretada por el núcleo para decir qué intérprete de comandos se utilizará para el script.
Haz que se vea así:
#!/bin/sh
notify-send "hi welcome"
y asegúrese de que el script sea ejecutable:
ls -l home/hacks/notify.sh
chmod +x home/hacks/notify.sh
ls -l home/hacks/notify.sh
Además, dado que está solicitando que esto suceda solo una vez al día, ¿la zona horaria del crontab es la misma que su propia zona horaria? Es posible que esto ocurra a las 2 p.m. GMT.
Hacer que crontab se ejecute solo es fácil. Aquí voy a decir cómo ejecutar trabajos crontab. Es útil para cualquiera que esté atascado en crontab.
Para hacer que el script sea ejecutable, tenemos que hacer:
Aquí ejecuto este script por cada minuto ... Al hacer el siguiente script, puede escribirlo en un archivo de registro para saber si funciona
escribir registro
enviar correo
fuente
4 hipótesis:
el cron daemon no se está ejecutando (hacer
ps axfww | grep cron
y verificar)el envío de notificaciones está intentando enviar la salida a un terminal o una sesión X, pero se ejecuta desde el
cron
entorno y no sabe "con quién hablar", por así decirlo.tu script no es ejecutable
la
home/
ruta en el script crontab es relativa al usuario en el que se ejecutan los scripts. Intenta usar la ruta completafuente
Agregue
export DISPLAY=:0
arriba de la línea de notificación de envío en su secuencia de comandos. Esto aborda el segundo punto de lornezog.fuente
Tienes que abrir crontab con el siguiente comando:
Esto ejecutará su script una vez por hora de 8 a.m. a 3 p.m. a las 10 minutos de la hora todos los lunes, miércoles y viernes.
fuente
En primer lugar, necesitamos editar el crontab con Command
crontab -e
y luego, dentro de esto,Crontab
agregar la ruta de acceso del script ejecutable y en su caso de esta manera* 14 * * * home/hacks/notify.sh >/dev/null 2>&1
.Iniciar / detener / reiniciar el servicio cron
/etc/init.d/crond start /stop / restart
service crond start /stop /restart
systemctl stop crond.service
systemctl stop crond.service
fuente
bastante simple, agregue la siguiente línea en la parte inferior del archivo crontab a través de:
sudo nano /etc/crontab
@reboot root cd /home/pi/node-sonos-http-api && npm start &
fuente