Script uitvoeren via CRON werkt niet. Via CLI wel

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Dracula
  • Registratie: Maart 2000
  • Laatst online: 10:02
Ik heb een bash script op mijn raspberry PI staan om een update te doen van Pihole adlisten.

Via CLI werkt dit script prima, echter als ik hem schedule met cron (sudo crontab -e) wordt het script niet uitgevoerd.

Script waar het om gaat:
#!/bin/bash

# exit on any error
set -e

# update pihole blocklists
sqlite3 /home/pi/pihole/gravity.db "SELECT Address FROM adlist" |sort >/home/pi/scripts/pihole.list
wget -qO - https://v.firebog.net/hosts/lists.php?type=tick |sort >/home/pi/scripts/firebog.list
comm -23 pihole.list firebog.list |xargs -I{} sudo sqlite3 /home/pi/pihole/gravity.db "DELETE FROM adlist WHERE Address='{}';"
comm -13 pihole.list firebog.list |xargs -I{} sudo sqlite3 /home/pi/pihole/gravity.db "INSERT INTO adlist (Address,Comment,Enabled) VALUES ('{}','firebog, added `date +%F`',1);"

docker exec -it pihole pihole restartdns reload
docker exec -it pihole pihole -g
Crontab regel:
0 2 * * */7 /home/pi/scripts/pihole_blocklistupdate.sh
En van de log wordt ik ook niet veel wijzer:
sudo grep CRON /var/log/syslog
Dec 1 10:33:01 pi CRON[6460]: (root) CMD (/home/pi/scripts/pihole_blocklistupdate.sh)
Dec 1 10:33:10 pi CRON[6459]: (CRON) info (No MTA installed, discarding output)

Beste antwoord (via Dracula op 01-12-2020 13:58)


  • hcQd
  • Registratie: September 2009
  • Nu online
cron zet het path standaard op /bin:/usr/bin. Als je commando's gebruikt die ergens anders geïnstalleerd staan moet je die zelf toevoegen.

Alle reacties


Acties:
  • 0 Henk 'm!

  • Keuvie
  • Registratie: Oktober 2005
  • Laatst online: 11:21
Welke permissies hebben het bestand?

`stat /home/pi/scripts/pihole_blocklistupdate.sh`

Hij moet in ieder geval uitvoerbaar zijn.


`Dec 1 10:33:10 pi CRON[6459]: (CRON) info (No MTA installed, discarding output)`

Dit lijkt in te houden dat de error die gegenereerd wordt niet verstuurd kan worden omdat er geen mail.


`0 2 * * */7 /home/pi/scripts/pihole_blocklistupdate.sh > /tmp/errorlog 2>&1`

Je kan dit eens proberen om de foutmelding op te vangen.

[ Voor 55% gewijzigd door Keuvie op 01-12-2020 11:08 ]


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • hcQd
  • Registratie: September 2009
  • Nu online
cron zet het path standaard op /bin:/usr/bin. Als je commando's gebruikt die ergens anders geïnstalleerd staan moet je die zelf toevoegen.

Acties:
  • 0 Henk 'm!

  • Keuvie
  • Registratie: Oktober 2005
  • Laatst online: 11:21
hcQd schreef op dinsdag 1 december 2020 @ 11:08:
cron zet het path standaard op /bin:/usr/bin. Als je commando's gebruikt die ergens anders geïnstalleerd staan moet je die zelf toevoegen.
Dit is niet het geval wanneer je het volledige path meegeeft.

Acties:
  • 0 Henk 'm!

  • hcQd
  • Registratie: September 2009
  • Nu online
Keuvie schreef op dinsdag 1 december 2020 @ 11:09:
[...]


Dit is niet het geval wanneer je het volledige path meegeeft.
Het gaat ook om de commando's in het script zelf. Ik zie er zo gauw niets bijzonders tussen staan, maar het is simpel genoeg te controleren door even het pad aan te passen als je hem met de hand uitvoert.

Acties:
  • 0 Henk 'm!

  • Keuvie
  • Registratie: Oktober 2005
  • Laatst online: 11:21
Ah sorry, daar heb je gelijk inderdaad. Dit lijken (aanname ;)) wel voornamelijk commands te zijn die in je path worden geplaatst bij installatie.

Makkelijkste is nu afwachten wat het error log terug geeft.

Acties:
  • +1 Henk 'm!

  • Dracula
  • Registratie: Maart 2000
  • Laatst online: 10:02
Keuvie schreef op dinsdag 1 december 2020 @ 11:05:

`0 2 * * */7 /home/pi/scripts/pihole_blocklistupdate.sh > /tmp/errorlog 2>&1`

Je kan dit eens proberen om de foutmelding op te vangen.
Errorlog:

comm: pihole.list: No such file or directory

Dit lijkt dus op wat @hcQd suggereert
hcQd schreef op dinsdag 1 december 2020 @ 11:08:
cron zet het path standaard op /bin:/usr/bin. Als je commando's gebruikt die ergens anders geïnstalleerd staan moet je die zelf toevoegen.
En ja hoor na declaren van path in mijn script werkt alles prima _/-\o_
Pagina: 1