Leser: 19
![]() |
|< 1 2 3 >| | ![]() |
28 Einträge, 3 Seiten |
QuoteCode: (dl )1
2
3
4
5
6
7
8#Anlegen der Variablen und Arrays
my ($inidaten,$ftphost,$ftpuser,@answer,$antwort,@del_rar,$fd,
$pfad,$Dateipfad,@safe_rar,$zeile,$datei_pfad,@safe_datei,@pd,
$dateigroesse_server,$aenderungsdatum_server,$answer,
$anzahl_server,$anzahl_client,$pfad_dateiname,$ftppasswort,
$socket,$imput,$helper,@pfad,$remotehost,@Serverfiles_loeschen,
$remoteport,$sek,$min,$stu,$tag,$mon,$jahr,$wtag,
$programmpfad);
QuoteCode: (dl )1
2tie my @ini,'Tie::File',$ini; #or die print "InI Datei konnte nicht gefunden werden. Programm wird beendet...;"
foreach my $inidaten(@ini)
QuoteCode: (dl )1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16{
if ($inidaten=~/Backuppfad\=/i)
{
$helper=index($inidaten,"backuppfad\=")+12;
$pfad=substr($inidaten,$helper);
chomp($pfad);
print "$pfad";
}
elsif ($inidaten=~/remoteport\=/i)
{
$helper=index($inidaten,"remoteport\=")+11;
$remoteport=substr($inidaten,$helper);
chomp($remoteport);
}
elsif ($inidaten=~/remotehost\=/i)
...
1
2
3
4
5
6
7
8
9
my %Config; # Konfigurationshash
open (INI, $ini) or die "Fehler bei Ini-Datei $ini: $!";
while (<INI>) {
next if /^#/; # Kommentarzeilen ueberspringen
chomp;
if (/^\s*(\w+)\s*=\s*(.*)/) {
$Config{$1} = $2;
}
}
QuoteCode: (dl )1
2open (FEHLER, ">Logdatei.log");
print FEHLER "Programm wurde am "."$datum"." um "."$zeit"." gestartet"."\n"|| die print "$!";
QuoteCode: (dl )1
2
3
4
5#Aufruf der Subroutine.
find(\&wanted,$pfad);
print "test";
#Aufbauen der FTP-Verbindung
my $ftp = Net::FTP->new("$ftphost",
QuoteCode: (dl )if ($answer =~ "keine Zugriffsberechtigung")
if ($answer =~ /keine Zugriffsberechtigung/)
Quote
Quote
QuoteCode: (dl )while ($$anzahl_client eq $anzahl_server)
QuoteCode: (dl )$anzahl_client = $anzahl_client + 1;
QuoteCode: (dl )$daten{dateien}{"$pfad_dateiname"}{'aenderungsdatum_server'}="$aenderungsdatum_server";
Quote
@pd = sort keys %{$daten{dateien}};
QuoteCode: (dl )foreach my $zeile(@pd)
QuoteCode: (dl )1
2
3
4unless ($daten{dateien}{"$zeile"}{'aenderungsdatum_client'})
{
push (@Serverfiles_loeschen, "$zeile");
}
1
2
3
unless (exists $daten{dateien}{$zeile}{aenderungsdatum_client}) {
push @Serverfiles_loeschen, $zeile;
}
QuoteCode: (dl )elsif ($daten{dateien}{"$zeile"}{'dateigroesse_client'} ne $daten{dateien}{"$zeile"}{'dateigroesse_server'})
QuoteCode: (dl )1
2
3
4
5
6
7$datei_pfad=$pfad.$zeile;
$datei_pfad=~ tr/\//\\/;
push (@safe_datei,"\"$datei_pfad\"")
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@safe_datei = ();
for my $zeile (sort keys %{$daten{dateien}})
{
my $zeilendaten = $daten{dateien}{$zeile};
push @Serverfiles_loeschen, $zeile
unless exists $zeilendaten->{aenderungsdatum_client};
if ($zeilendaten->{dateigroesse_client} !=
$zeilendaten->{dateigroesse_server} or
$zeilendaten->{aenderungsdatum_client} ne
$zeilendaten->{aenderungsdatum_server})
{
my $datei_pfad = $pfad . $zeile;
$datei_pfad =~ tr~/~\\~;
push @safe_datei, qq{"$datei_pfad"};
}
}
QuoteCode: (dl )print FEHLER "Update ist nicht erfordelerlich. Programm wurde beendet."."\n";
Quote
1
2
3
my $dateiengesamt = @safe_datei;
my $dateienfertig = 0;
while ($dateienfertig < $dateiengesamt)
Quote
QuoteCode: (dl )if ($counterdatei ne 900)
QuoteCode: (dl )my $i++;
QuoteCode: (dl )-archive => "pre_rar"."$i",
-archive => "pre_rar$i",
Quote
unlink @del_rar;
QuoteCode: (dl )1
2
3
4#subroutine zur suche der erforderlichen rar_dateien.
sub wanted_rar
{
if (($_ =~ ".rar")&&($_ =~ "pre_rar\."))
if (/^pre_rar\d+\.rar$/) ... # Vorne pre_rar, gefolgt von einer Zahl, gefolgt von .rar am Ende
QuoteCode: (dl )1
2
3
4
5
6
7
8#subroutine zur suche der erforderlichen Dateien
sub wanted
{
if( -f $File::Find::name)
{
$helper=length($pfad);
$Dateipfad=substr($File::Find::name,$helper);
chomp ($Dateipfad);
QuoteCode: (dl )1
2
3
4
5
6$ctime_cl=scalar localtime ((stat $File::Find::name)[9]);
my @split_cttime_cl = split (/ /,$ctime_cl);
my @split_time = split (/:/, $split_cttime_cl[3]);
$ctime_cl = "$split_cttime_cl[0]"." "."$split_cttime_cl[1]"."
"."$split_cttime_cl[2]"." "."$split_time[0]".":"."$split_time[0]"."
"."$split_cttime_cl[4]";
QuoteCode: (dl )$daten{dateien}{"$Dateipfad"}{'aenderungsdatum_client'}="$ctime_cl";
$daten{dateien}{$File::Find::dir}{aenderungsdatum_client} = $ctime_cl;
push @safe_datei, qq{"$datei_pfad"};
if (/^pre_rar\d+\.rar$/) ... # Vorne pre_rar, gefolgt von einer Zahl, gefolgt von .rar am Ende
if (/^pre_rar\d+\.part\d+\.rar$/)
QuoteDas sieht grauslich aus, vor allem wenn man sieht, wie schoen du das in den Routinen time() und date() geloest hast. Warum nimmst du hier "scalar localtime (...)", statt gleich mit dem Array zu arbeiten und mit sprintf(), wie unten?
Quote
Was passiert da genau? Ich verstehs noch nicht so ganz.
QuoteWie müßte da meine InI Datei aussehen?
So ungefähr?
1
2
3
4
5
# Hier kommt der Pfad zu den Programmen:
programmpfad = C:\tools\client
# Dies ist der Pfad zu den Backups
backuppfad = Z:\Installs
# etc. ...
Quote
QuoteCode: (dl )push @safe_datei, qq{"$datei_pfad"};
qq?
Bedeutet das das er alles was in der {} steht genau so in das array schiebt?
Quote
QuoteQuoteDas sieht grauslich aus, vor allem wenn man sieht, wie schoen du das in den Routinen time() und date() geloest hast. Warum nimmst du hier "scalar localtime (...)", statt gleich mit dem Array zu arbeiten und mit sprintf(), wie unten?
Weil ich mir diese 2 Routinen aus einem anderen Code geliehen habe. Ehrlich gesagt habe ich aber keine Ahung wie genau das funktioniert... :)
QuoteSo, ich muss jetzt leider weg. Hoffe geholfen zu haben. :)
![]() |
|< 1 2 3 >| | ![]() |
28 Einträge, 3 Seiten |