Thread Skript für automatische Backups (27 answers)
Opened by mollilinux at 2010-02-23 14:06

sid burn
 2010-02-24 17:03
#133647 #133647
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Quote
Im Google finde ich nichts passendes dazu (perl Zeitschleife...).

Soetwas nennt man nicht "Zeitschleife" sondern eher "Eventloop" und dazu gibt es einen haufen implementation, das habe ich dir aber schon in diesem Post geschrieben. http://www.perl-community.de/bat/poard/message/133...

Quote
Da das Skript nicht aufhören zu laufen darf, braucht es eine Schleife "Wenn der Download-Command länger als 3min dauert dann weiter im Script.

Ansonsten ganz haargenau für diesen Fall gibt es noch eine Lösung die ohne Event Loop, Threads, Forking etc. auskommt. Du kannst nämlich ein Alarm Zeitbasiert auslösen.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
eval {
    local $SIG{ALRM} = sub { die "mauahaha\n" };
    
    alarm(5);
    print "Namen in 5 Sekunden eingeben: ";
    chomp( my $name = <STDIN> );
    alarm(0);
};
if ( $@ ) {
    # timeout
    print "\nBoooom! Sie haben länger als 5 Sekunden gebraucht!\n";
}

Das wartet 5 Sekunden auf eine eingabe. Nach 5 sekunden wir der "timeout" bereich ausgeführt.

Du musst aber beachten das nur ein einziger Timeout pro Prozess gesetzt werden kann. Auch passieren keine Aktionen asynchron wie bei einer EventSchleife.

Ansonsten ist Net::SCP ein wraper um Shell kommandos. Daher wenn es die Shell kommandos startet werden neue Prozesse erzeugt. Wie das ganze reagiert wenn du zeitgesteuert einfach abbrichst im parent prozess ist mir selber nicht ganz klar. Auch ist mir in dem fall dann nicht klar ob es überhaupt abbricht etc.

Das musst du mal selber ausprobieren.
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread Skript für automatische Backups