Cronjob funktioniert nicht?!

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
pcace
Beiträge: 239
Registriert: 28.08.2011 01:08:55

Cronjob funktioniert nicht?!

Beitrag von pcace » 04.09.2011 17:11:40

Hi,

ich habe hier einen Cronjob, der jede stunde eine Datenbank (von forked-daapd) auslesen soll und gespielte Titel zu Last.fm hochladen soll.

der Cronjob sieht so aus (also root per crontab -e eingetragen):

Code: Alles auswählen

* 1 * * * /bin/bash /usr/local/bin/lastfmsubmit.sh
Das script sieht so aus:

Code: Alles auswählen

#!/bin/bash

# Forked-daapd Datenbank lesen und und in ein lastfmsubmitd lesbares Format wandeln...


# config
SQLITE=/usr/bin/sqlite3
DATABASE=/var/cache/forked-daapd/songs3cp.db
LASTFILE=/var/cache/forked-daapd/lastfmsubmit.date
DBLSFILE=/var/cache/forked-daapd/lastfmsubmit.ls

/bin/cp /var/cache/forked-daapd/songs3.db /var/cache/forked-daapd/songs3cp.db

# get last database file date
if [ -e $DBLSFILE ]
then
 . $DBLSFILE
else
 DBLSRUN=
fi

# exit when database file unchanged
DBLSNOW=`ls -l $DATABASE`
if [ "$DBLSRUN" == "$DBLSNOW" ]
then
 exit
fi

# get last run time
if [ -e $LASTFILE ]
then
 . $LASTFILE
else
 LASTRUN=0
fi

# log file date
echo "DBLSRUN="\"$DBLSNOW\""" > $DBLSFILE

# query database
OUTFILE=$(mktemp /tmp/mt-daapd-XXXXXXXX)
$SQLITE $DATABASE 'SELECT artist,album,title,track,song_length,time_played FROM files where time_played > '$LASTRUN' ORDER BY time_played ASC;' | /usr/bin/gawk -F '|' '{ printf "---\nartist: %s\nalbum: %s\ntitle: %s\ntrack: %s\nlength: %d\ntime: !timestamp %s\n",$1,$2,$3,$4,$5/1000,strftime("%Y-%m-%d %T",$6,1) }' > $OUTFILE
/bin/mv $OUTFILE /var/spool/lastfm

# log query date
echo "LASTRUN="`date +%s` > $LASTFILE

# make lastfmsubmitd files readable
/bin/chmod 664 /var/spool/lastfm/*

Das komische ist nun, dass das script wunderbar funktioniert, wenn ich per hand aufrufe:

Code: Alles auswählen

/bin/bash /usr/local/bin/lastfmsubmit.sh
Warum funktioniert das nun als Cronjob nicht?!


Irgendwelche Ideen?


Grüße,

Pfannkuchen

michaels
Beiträge: 1164
Registriert: 29.03.2009 18:12:25

Re: Cronjob funktioniert nicht?!

Beitrag von michaels » 04.09.2011 17:27:20

Ist in der contab die letzte Zeile eine Leerzeile:

Code: Alles auswählen

* 1 * * * /bin/bash /usr/local/bin/lastfmsubmit.sh

Gruß

pcace
Beiträge: 239
Registriert: 28.08.2011 01:08:55

Re: Cronjob funktioniert nicht?!

Beitrag von pcace » 04.09.2011 17:45:18

Ja, ist es.

Darf nicht?

Grüße,

Pfannkuchen

slu
Beiträge: 2240
Registriert: 23.02.2005 23:58:47

Re: Cronjob funktioniert nicht?!

Beitrag von slu » 04.09.2011 17:56:00

@ pcace,

das "/bin/bash" kannst Du dir sparen, steht ja schon im Script. Bin mir auch garnicht sicher ob das mit drin stehen darf!
Hast Du zur Sicherheit ein /etc/init.d/cron restart gemacht?
Was sagt den /var/log/syslog?
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

pcace
Beiträge: 239
Registriert: 28.08.2011 01:08:55

Re: Cronjob funktioniert nicht?!

Beitrag von pcace » 04.09.2011 18:15:14

Hi,

ein simples /etc/init.d/cron restart hats gebracht... ...naja, hätt ich auch selbst drauf kommen können ;)


Danke trotzdem!

Gruß

Antworten