Thread Perlscript für Cronjob Abfolge (9 answers)
Opened by Channel at 2007-04-02 16:05

Channel
 2007-04-02 16:05
#9866 #9866
User since
2007-04-02
4 Artikel
BenutzerIn
[default_avatar]
Hallo Perl Community,

ich habe ein kleines Script was aus einer .txt Datei Cronjobs ausliest und diese nacheinander abarbeitet. Bevor nicht jeder Cronjob erledigt ist wird der nächste nicht begonnen.

Soviel zur Theorie. In der Praxis allerdings funktioniert das ganze nicht, es erscheint immer die Fehlermeldung: not working.

Das Script:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/perl
print "Content-type: text/html\n\n";
use CGI qw/:cgi-lib/;
use CGI::Carp qw(fatalsToBrowser);
%FORM=Vars();

#Instructions
##################

#Set this to the server path to the crons.txt
$pathtocrontxt="/var/www/vhosts/mydomain/cgi-bin/crons.txt";
# In the crons.txt put the first line as 0 and then put each cronjob on a seperate line below
# set the chmod permissions to crons.txt to 777 and cron.cgi to 755








#####################################
print "Running Crons...\n";
open(INF,"$pathtocrontxt") or print "couldnt open file";
@commands=<INF>;
close(INF);
foreach $line(@commands){
chomp($line);
if($line == 0){
print "not working\n";
@commands[0]="1\n";
open(OUTF,">$pathtocrontxt");
foreach $command(@commands){
print OUTF "$command";
}
close(OUTF);
}
elsif($line == 1){
print "working";
exit;

}
else {
print "Executing: $line\n";
$output=system("$line");
print "$output\n";
}





}
@commands[0]="0\n";
open(OUTF,">$pathtocrontxt");
foreach $command(@commands){
print OUTF "$command";
}
close(OUTF);
print "\n\nDone!\n";


Die .txt Datei:

Code: (dl )
1
2
3
4
0
/usr/bin/php /var/www/vhosts/domain/httpdocs/do-it/index.php
/usr/bin/php /var/www/vhosts/domain/httpdocs/do-it1/index.php
/usr/bin/php /var/www/vhosts/domain/httpdocs/do-it2/index.php


Das Script hier wird korrekt aufgerufen, nur die crons werden nicht abgearbeitet. Die Pfade habe ich alle korrekt angegeben.
Wo kann der Fehler stecken?

Danke.
Channel

View full thread Perlscript für Cronjob Abfolge