Thread Skript für automatische Backups
(27 answers)
Opened by mollilinux at 2010-02-23 14:06
Hallo Perl-Community
Ich bin seit gestern an einem Skript das es ermöglicht, automatische Backups von Protokollen von meinem Server herunterzuladen. Das Skript soll zuerst sich über SSH verbinden, wenn die Verbindung fehlgeschlagen ist, dann alle 5 sek. versuchen neu verbinden. Wenn die Verbindung erfolgreich ist, dann soll das Skript die Logfiles kopieren und die Verbindung trennen, dann 2min warten und wieder von vorne beginnen. Die Subroutine ist für die Verbindung zuständig (doConnect). Wenn ich das Skript ausführe, dann bekomme ich diese Fehlerausgabe: Code: (dl
)
1 ... Hier der Code: Code (perl): (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 61 #!/usr/bin/perl use POSIX; my $host = 'HOST'; my $user = 'USER'; my $startTime = getUnixTime(); my $timeNow = $startTime; my $duration = 0; my $auth = 0; my $tmp; # Subroutine für getUnixTime sub getUnixTime { my $sec = 40; my $min = 30; my $hour = 14; my $day = 23; my $mon = 2 - 1; my $year = 2010 - 1900; my $wday = 0; my $yday = 0; my $unixtime = mktime ($sec, $min, $hour, $day, $mon, $year, $wday, $yday); } # Subroutine für System-Call sub exec_command { system("doConnect() $cmd_login $ssh_bin $startTime $duration $auth"); } while (true) { # daemon-Schleife if ( ( ($timeNow - $startTime) % (120 + $duration) ) == 0 ) { while ( not $auth ) { # Verbindungsschleife if ( ( ($timeNow - ($startTime+$duration)) % 5 ) == 0 ) { sub doConnect { $cmd_login = "$user\@$host"; $ssh_bin = `which ssh`; chomp $ssh_bin; exec_command(); } doConnect(); # doAuth(); } $tmp = getUnixTime; $duration = $tmp - $timeNow; $timeNow = tmp; } getLogs(); disconnect(); $auth = 0; } $duration = getUnixTime() - $timeNow; $timeNow = getUnixTime(); } Irgendwie komme ich nicht mehr weiter. Kann mir jemand helfen? Gruss mollilinux Last edited: 2010-02-23 17:23:21 +0100 (CET) |