[Gelöst] PerlScript via crontab

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Victo
Beiträge: 46
Registriert: 27.05.2013 14:37:12

[Gelöst] PerlScript via crontab

Beitrag von Victo » 19.12.2014 11:52:26

Guten Morgen zusammen,

nur eine ganz kleine Frage, steh momentan auf dem Schlauch.

Ich möchte eine PerlScript via crontab starten, finde den fehler aber nicht. Es startet einfach nicht. Hier mal die Ausgabe von crontab -l

Code: Alles auswählen

root@raspberrypi:/home/pi/backup# crontab -l
# BackUpScript
* 12 * * * /usr/bin/perl /home/pi/backup/backup.pl
  • Wenn ich den Befehl so ausführen klappt alles ohne Probleme.
  • Debian Zeit stimmt überein
  • Das Script ist ausführbar
Ich trage momentan immer eine andere Zeit unter crontab -e ein um es zu testen. Danach restart ich cron

Code: Alles auswählen

root@raspberrypi:/home/pi/backup# /etc/init.d/cron restart
[ ok ] Restarting periodic command scheduler: cron[....] Stopping periodic command scheduler: cron.
[ ok ] Starting periodic command scheduler: cron.
Was übersehe ich? :(

Beste Grüße
Zuletzt geändert von Victo am 19.12.2014 14:20:00, insgesamt 1-mal geändert.

uname
Beiträge: 12475
Registriert: 03.06.2008 09:33:02

Re: PerlScript via crontab

Beitrag von uname » 19.12.2014 12:04:18

Da du das Script scheinbar ohne Shebang

Code: Alles auswählen

#! /usr/bin/perl
nutzt braucht es nicht ausführbar sein. Nur /usr/bin/perl muss ausführbar sein.

Ich nutze es immer mit Shebang, dann ausführbar und im Cron dann /usr/bin/perl weglassen.
Leider weiß ich nicht ob es das Problem löst.

Nachtrag:
Versuche doch erst mal eine Datei zu schreiben und schau dir danach an ob die Datei überhaupt existiert.

Code: Alles auswählen

open (DATEI, ">/tmp/test.txt") or die $!;
   print DATEI "Dies ist ein Test!";
close (DATEI)

Victo
Beiträge: 46
Registriert: 27.05.2013 14:37:12

Re: PerlScript via crontab

Beitrag von Victo » 19.12.2014 12:13:57

Doch wird benutzt, hab es jetzt mal probiert ohne perl aufzu rufen - jedoch wieder keine rückmeldung :/

Nachtrag: Okay - liegt nicht am script. Muss irgend wie am Crontab liegen. Gibt es dafür irgendwelche Configfiles? Wollte gerade via touch eine Datei erstellen, jedoch ist hier auch nix passiert. :(

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: PerlScript via crontab

Beitrag von rendegast » 19.12.2014 12:35:32

Das normale Environment eines Cronjob hat
PATH='/usr/bin:/bin'
Geht Dein Skript darüber hinaus?

Probe auf der Konsole

Code: Alles auswählen

PATH=/usr/bin:/bin;  perl /pfad/Deinscript.pl
?

Code: Alles auswählen

$ cat /etc/crontab
...
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
....
PATH=... kannst Du auch in Deiner crontab setzen, inkl. Kontrolle in der Art:

Code: Alles auswählen


* * * * * set
PATH=/usr/bin:/bin:/usr/local/lib
* * * * * set
* * * * * sleep 3; echo dummy-Trenner

# BackUpScript
* 12 * * * /usr/bin/perl /home/pi/backup/backup.pl
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Victo
Beiträge: 46
Registriert: 27.05.2013 14:37:12

Re: PerlScript via crontab

Beitrag von Victo » 19.12.2014 13:13:27

also manuell geht es...

Code: Alles auswählen

root@raspberrypi:/home/pi/backup# PATH=/usr/bin:/bin;  perl /home/pi/backup/backup.pl
  INFO: Start at 2014-12-19 13:11:24
Kann es irgend wie sein, das meine jobs nicht richtig geladen oder aktualisiert werden? Brauch der eine bestimmte Zeit bist er Jobs "freischaltet"?

Aber vielen Dank schon mal für eure Hilfe und Tips.

Nachtrag: Hab jetzt gerade festgestellt das beim zweiten Anlauf die test-datei via touche erstellt worden ist. Jedoch wieder nicht das perl-script gestartet...

Dimejo
Beiträge: 503
Registriert: 21.07.2014 13:37:23

Re: PerlScript via crontab

Beitrag von Dimejo » 19.12.2014 13:25:26

Ich glaube der erste Stern ist das Problem. Ersetze den doch mal mit einer Minuten-Angabe.

Code: Alles auswählen

# BackUpScript
43 12 * * * /usr/bin/perl /home/pi/backup/backup.pl

Victo
Beiträge: 46
Registriert: 27.05.2013 14:37:12

Re: PerlScript via crontab

Beitrag von Victo » 19.12.2014 13:31:10

hm, danke für den Tip. Hatte ich aber auch schon.

Ich ändere die Zeit gerade durch. So das ich 2 Min warten muss, das was passieren sollte. Also auch mit einer Minuten angabe geht es nicht.

Hab jetzt mal in die /etc/crontab einen Eintrag für das Backup-Script erstellt. Vieleicht geht es so.

Victo
Beiträge: 46
Registriert: 27.05.2013 14:37:12

Re: PerlScript via crontab

Beitrag von Victo » 19.12.2014 14:04:40

So zurück zum Anfang... schon viel zu viel Zeit verschwendet :/

Ich hab eine test-script(backup2.pl) angelegt was wie oben als Tip gepostet worden ist eine Datei erstellet.

Code: Alles auswählen

#!/usr/bin/perl

use strict;
use warnings;

open (my $fh, ">", "/tmp/test.txt") or die $!;
print $fh "Dies ist ein Test!";
close ($fh);
Dise Datei hat chmod 644 und liegt im gleichen Verzeichnis wie mein backup-script.
Den Cronjob habe ich in der Datei "/etc/crontab/" angelegt:

Code: Alles auswählen

40 13   * * *   root    perl /home/pi/backup/backup2.pl
Hat wunderbar funktioniert. Nun kanns ja eigentlich nur noch am original Backup-script liegen? Oder kann es sein das da noch was anderes mit rein spielt?

Hoffe jemand hat noch eine Idee :hail:

Grüße

Victo
Beiträge: 46
Registriert: 27.05.2013 14:37:12

Re: PerlScript via crontab

Beitrag von Victo » 19.12.2014 14:19:41

Okay scripting Fehler.... tut mir leid. Danke für eure tolle Hilfestellung und Tips. :facepalm:

Antworten