Windows Dienst mit Perl

fiber opticWin32::Daemon;
Win32::Daemon::StartService();

while (SERVICE_START_PENDING != Win32::Daemon::State()) {
sleep(1); }

Win32::Daemon::State(SERVICE_RUNNING);

while (1) {
open FOUT, „>>c:\\win32testserv.log“;
print FOUT localtime() . „\n“;
close FOUT;
sleep 3;
if (Win32::Daemon::State() == SERVICE_STOP_PENDING) {
open FOUT, „>>c:\\win32testserv.log“;
print FOUT „Jetzt ist aber Schluss\n“;
close FOUT;
exit 0;
} }

Win32::Daemon::StopService();
Win32::Daemon::State(SERVICE_STOPPED);

#Nennen wir das obenstehende Skript ‚test.pl‘ und sagen wir, das Skript läge unter ‚c:\scripts‘.
#Wir können nun diese Datei mit dem folgenden Befehl als Dienst registrieren:
#
#perl win32serv.pl install Test c:\\scripts\\test.pl
#
#Der nun installierte Dienst kann mit ’net start Test‘ gestartet
#werden und bewirkt, dass alle drei Sekunden das aktuelle Datum in einer Log-Datei festgehalten wird.

FTP mit Proxy und Perl

$FTPSERVER      = „blabla.com“;
$USERNAME       = „ichauch“;
$USERPASS       = „sdfsfw“;
$FTPVERZEICHNIS = „/“;
$FTPPROXY       = „proxyd.de:2121“;
$FTPPORT        = „21“;

while(1)
{

$ftp = Net::FTP->new($FTPSERVER,Firewall=>$FTPPROXY,FirewallType=>1,Port=>$FTPPORT,Debug=>1) || die LogMeldung(„Keine Verbindung mit $FTPSERVER\n“);  # Hier wird die Verbindung geöffnet und geprüft!

$ftp->login($USERNAME,$USERPASS)           || die LogMeldung(„Fehler beim einloggen.\n“);           # Hier Benutzername und Password eintragen
$ftp->cwd($FTPVERZEICHNIS)                 || die LogMeldung(„Fehler beim cd ins FTP Verzeichnis: $FTPVERZEICHNIS \n“); # cwd: Verzeichnis wechseln

if(!$ftp)
{
LogMeldung („Konnte keine Verbindung zum: $FTPSERVER aufbauen ($!)\n“);
LogMeldung („Programm Ende\n“);
exit;
}
else
{
LogMeldung („Verbindung OK! zum: $FTPSERVER ($!)\n“);
}

@dir= $ftp->dir();                                        # Liste alle Infos auf
foreach (@dir) {print „$_\n“; }

$ftp->quit;