Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: [OPGELOST] Script niet uitgevoerd door cron  (gelezen 1039 keer)

Offline 10o

  • Lid
  • Steunpunt: Nee
[OPGELOST] Script niet uitgevoerd door cron
« Gepost op: 2014/04/14, 12:18:43 »
Op mijn Ubuntu server worden dagelijks een aantal bash scripts aangeroepen:

crontab -e
00 08,00 * * * /home/myname/rmsubs
00 08,00 * * * /home/myname/rmnzbs
00 11,18 * * * /home/myname/getsubs

De eerste twee scripts worden netjes uitgevoerd, het laatste niet.
Wie weet waarom dat script via cron niet uitgevoerd wordt, terwijl het handmatig (sh getsubs) wel gewoon werkt?

Alle scripts doen hun werk in een map met TV-series. Iedere TV-serie heeft zijn eigen submap.

De scripts in kwestie

rmsubs: verwijdert verweesde srt-bestanden
#!/bin/bash

folder_tv_series="/mnt/hitachi2tb2/Videos/TV-Series"

find "$folder_tv_series" -name "*.srt" | while read file
do
        stripped="${file%.srt}"
        mkv="$stripped"".mkv"
        if [ ! -e "$mkv" ]
        then
                # echo "removed orphaned subtitle: ""$file"
                rm "$file"
        fi
done

folder_movies="/mnt/hitachi2tb2/Videos/Movies"

find "$folder_movies" -name "*.srt" | while read file
do
        stripped="${file%.srt}"
        mkv="$stripped"".mkv"
        if [ ! -e "$mkv" ]
        then
                # echo "removed orphaned subtitle: ""$file"
                rm "$file"
        fi
done

exit 0

rmnzbs: verwijdert nzb-bestanden aangemaakt door Sickbeard
find /mnt/hitachi2tb1/Videos -iname "*.nzb" -exec rm {} \;
find /mnt/hitachi2tb2/Videos -iname "*.nzb" -exec rm {} \;

getsubs: zoekt naar engelstalige subs m.b.v. subliminal script
subliminal --log-file /home/myname/subliminal.log -l en -v -s -h /mnt/hitachi2tb2/Videos/TV-Series
« Laatst bewerkt op: 2014/04/15, 12:51:06 door 10o »
Workstation:  i7-5820K 16GiB - GeForce GTX 960 2GiB - 4K  (Ubuntu 16.04.1)
Server: Asus E35M1-I Deluxe - AMD Fusion APU E-350 (Ubuntu Server 16.04.1)

Offline Buzzin

  • Lid
  • Steunpunt: Nee
Re: Script niet uitgevoerd door cron
« Reactie #1 Gepost op: 2014/04/14, 23:21:40 »
Je kunt even proberen om het script te draaien met alle output naar een logfile?
Football: A battle between two teams of mindless thugs over scraps of coloured cloth. Usually accompanied by the spectacle of 22 overpaid primadonnas kicking a ball on a field.
DebianDevuan, KDE & OperaVivaldi addict, RedHat Engineer

Offline erik1984

  • Lid
    • erik1984
  • Steunpunt: Nee
Re: Script niet uitgevoerd door cron
« Reactie #2 Gepost op: 2014/04/15, 00:19:04 »
Misschien dat in de logs staat waarop cron is vastgelopen:
grep CRON /var/log/syslog

Offline 10o

  • Lid
  • Steunpunt: Nee
Re: Script niet uitgevoerd door cron
« Reactie #3 Gepost op: 2014/04/15, 08:52:59 »
Misschien dat in de logs staat waarop cron is vastgelopen:

Ik heb cron zojuist het laatste script laten draaien. Dat is blijkbaar niet gelukt. Het commando "subliminal" is onvindbaar. Vreemd, want handmatig draait het script gewoon. Hoe zou dit kunnen?

cronlog
grep CRON /var/log/syslog
Apr 15 06:54:01 myname-server CRON[31110]: (root) CMD (if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi)
Apr 15 07:09:01 myname-server CRON[31183]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete)
Apr 15 07:17:01 myname-server CRON[31222]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Apr 15 07:39:01 myname-server CRON[31325]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete)
Apr 15 07:54:01 myname-server CRON[31396]: (root) CMD (if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi)
Apr 15 08:00:01 myname-server CRON[31428]: (myname) CMD (/home/myname/rmnzbs)
Apr 15 08:00:01 myname-server CRON[31431]: (myname) CMD (/home/myname/rmsubs)
Apr 15 08:09:01 myname-server CRON[31478]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete)
Apr 15 08:17:01 myname-server CRON[31517]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Apr 15 08:39:01 myname-server CRON[31620]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete)
Apr 15 08:54:01 myname-server CRON[31867]: (root) CMD (if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi)
Apr 15 09:00:01 myname-server CRON[31935]: (myname) CMD (/home/myname/getsubs)

/var/mail/myname
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/myname>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=myname>
Message-Id: <E1WZxLd-0008J7-47@myname-server>
Date: Tue, 15 Apr 2014 09:00:01 +0200

/home/myname/getsubs: 1: /home/myname/getsubs: subliminal: not found
« Laatst bewerkt op: 2014/04/15, 09:13:39 door 10o »
Workstation:  i7-5820K 16GiB - GeForce GTX 960 2GiB - 4K  (Ubuntu 16.04.1)
Server: Asus E35M1-I Deluxe - AMD Fusion APU E-350 (Ubuntu Server 16.04.1)

Offline Buzzin

  • Lid
  • Steunpunt: Nee
Re: Script niet uitgevoerd door cron
« Reactie #4 Gepost op: 2014/04/15, 10:26:49 »
Een script draait mogelijk met andere PATH gegevens waardoor hij het programma niet kan vinden.
Even in een terminal 'which subliminal' doen en je weet het hele pad van het uitvoerbare bestand, die dan gebruiken in je script en voila... :)
Overigens is het handig om dat bij alle executables te doen die je aanroept, zodat je zeker weet dat de juiste versie gebruikt word.
Football: A battle between two teams of mindless thugs over scraps of coloured cloth. Usually accompanied by the spectacle of 22 overpaid primadonnas kicking a ball on a field.
DebianDevuan, KDE & OperaVivaldi addict, RedHat Engineer

Offline 10o

  • Lid
  • Steunpunt: Nee
Re: Script niet uitgevoerd door cron
« Reactie #5 Gepost op: 2014/04/15, 12:50:50 »
Een script draait mogelijk met andere PATH gegevens waardoor hij het programma niet kan vinden.
Even in een terminal 'which subliminal' doen en je weet het hele pad van het uitvoerbare bestand, die dan gebruiken in je script en voila... :)
Overigens is het handig om dat bij alle executables te doen die je aanroept, zodat je zeker weet dat de juiste versie gebruikt word.

Helder and working. Bedankt!

Script getsubs aangepast en pad ervoor gezet:
/usr/local/bin/subliminal --log-file /home/myname/subliminal.log -l en -v -s -h /mnt/hitachi2tb2/Videos/TV-Series
Workstation:  i7-5820K 16GiB - GeForce GTX 960 2GiB - 4K  (Ubuntu 16.04.1)
Server: Asus E35M1-I Deluxe - AMD Fusion APU E-350 (Ubuntu Server 16.04.1)