Eu tenho um notify.sh
script que se parece com:
notify-send "hi welcome"
Minha notificação do crontab às 14h:
0 14 * * * home/hacks/notify.sh
No entanto, isso não funciona. Qual é o problema?
Falta um # no seu script! linha no início, que é a mágica interpretada pelo kernel para dizer qual interpretador de comando deve ser usado para o script.
Faça com que fique assim:
#!/bin/sh
notify-send "hi welcome"
e verifique se o script é executável:
ls -l home/hacks/notify.sh
chmod +x home/hacks/notify.sh
ls -l home/hacks/notify.sh
Além disso, como você está solicitando que isso aconteça apenas uma vez por dia, o fuso horário do crontab é igual ao seu próprio fuso horário? Você pode achar isso acontecendo às 14:00 GMT.
Fazer o crontab rodar é fácil apenas. Aqui vou dizer como executar tarefas do crontab. É útil para quem está preso no crontab.
Para tornar o script executável, temos que fazer:
Aqui eu executo esse script a cada minuto ... Fazendo o script abaixo, você pode escrevê-lo em um arquivo de log para descobrir se está funcionando
gravar log
enviar correio
fonte
4 hipótese:
o cron daemon não está em execução (faça um
ps axfww | grep cron
e verifique)a notificação de envio está tentando enviar a saída para um terminal ou uma sessão X - mas é executada de dentro do
cron
ambiente e não sabe "com quem conversar", por assim dizer.seu script não é executável
o
home/
caminho no script crontab é relativo ao usuário em que os scripts são executados. Tente usar o caminho completofonte
Adicione
export DISPLAY=:0
acima da linha de notificação e envio em seu script. Isso aborda o segundo ponto de lornezog.fonte
Você precisa abrir o crontab pelo seguinte comando:
Isso executará seu script uma vez por hora, das 8h às 15h às 10 minutos, todas as segundas, quartas e sextas-feiras.
fonte
Primeiro de tudo, precisamos editar o crontab com Command
crontab -e
e, depois disso,Crontab
adicionar o script Path of Executable e no seu caso como este* 14 * * * home/hacks/notify.sh >/dev/null 2>&1
.Iniciar / Parar / reiniciar o serviço cron
/etc/init.d/crond start /stop / restart
service crond start /stop /restart
systemctl stop crond.service
systemctl stop crond.service
fonte
bastante simples, adicione a seguinte linha na parte inferior do arquivo crontab via:
sudo nano /etc/crontab
@reboot root cd /home/pi/node-sonos-http-api && npm start &
fonte