Leser: 16
2011-02-22T08:52:02 biancaZusatzfrage: Falls es nicht per FTP geht würde ich gern Datum und Zeit der lokalen Datei auf Windows ändern. Bei Win32::File habe ich dazu keine Möglichkeit gefunden.
Gibt es ein Modul, dass das kann? Welches wäre das.
2011-02-22T11:55:57 GwenDragonSITE UTIME
oder SITE MDTM
oder SITE MFMT
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
#!/usr/bin/perl -w use strict; use warnings; use Date::Calc qw ( Localtime ); my %env = ( ftp_server => 'bitte einsetzen', ftp_user => 'bitte einsetzen', ftp_pass => 'bitte einsetzen', ); my $modul = 1; eval "use Net::FTP; 1;" or $modul = 0; if (!$modul) { die 'Modul >Net::FTP< kann nicht geladen werden!'; } eval "use Net::FTP::File; 1;" or $modul = 0; if (!$modul) { die 'Modul >Net::FTP::File< kann nicht geladen werden!'; } my $ftp = Net::FTP -> new ($env{ftp_server},Debug => 0,Timeout => 60,Passive => 1) or die 'Verbindungsaufbau zum FTP Server fehlgeschlagen'; $ftp -> login ($env{ftp_user},$env{ftp_pass}) or die 'Login zum FTP Server fehlgeschlagen'; my $akt_ftp_verz = $ftp -> cwd ('/tmpdevelop') or die 'Verzeichniswechsel mißlungen'; $ftp -> ascii or die 'Umschaltung in ASCII-Modus fehlgeschlagen'; $ftp -> put ($0) or die 'Upload fehlgeschlagen'; my $timewert = '20110101000000'; print "Stempel muesste sein: $timewert\n"; my $ret = $ftp -> quot ('MFMT ' . $timewert . ' test_utime.pl') or die 'Sonderbefehl fehlgeschlagen'; print "Return: >$ret<\n"; my $neu = $ftp -> mdtm ('test_utime.pl'); $neu = sprintf ("%04d%02d%02d%02d%02d%02d",(Localtime ($neu))[0..5]); print "Nachher : $neu => " . ($neu == $timewert ? 'RICHTIG' : 'FALSCH') . "\n"; $ftp -> quit;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#!/usr/bin/perl use strict; use warnings; use Net::FTP; my $server = "ftp.********"; my $user = "******"; my $password = '****************'; my $ftp = Net::FTP->new( $server, Debug => 1 ) or die "Cannot connect to $server: $@"; $ftp->login( $user, $password ) or die "Cannot login ", $ftp->message; $ftp->cwd("/prv") or die "Cannot change working directory ", $ftp->message; $ftp->put("test.test") or die "get failed ", $ftp->message; $ftp->quot( "MFMT", "19990101010101", "test.test" ) or die "get failed ", $ftp->message; $ftp->quit;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Net::FTP=GLOB(0x24eae30)<<< 220 ******* FTP server ready
Net::FTP=GLOB(0x24eae30)>>> USER ************
Net::FTP=GLOB(0x24eae30)<<< 331 Password required for *******
Net::FTP=GLOB(0x24eae30)>>> PASS ....
Net::FTP=GLOB(0x24eae30)<<< 230 User ******** logged in
Net::FTP=GLOB(0x24eae30)>>> CWD /prv
Net::FTP=GLOB(0x24eae30)<<< 250 CWD command successful
Net::FTP=GLOB(0x24eae30)>>> PASV
Net::FTP=GLOB(0x24eae30)<<< 227 Entering Passive Mode (********).
Net::FTP=GLOB(0x24eae30)>>> STOR test.test
Net::FTP=GLOB(0x24eae30)<<< 150 Opening BINARY mode data connection for test.test
Net::FTP=GLOB(0x24eae30)<<< 226 Transfer complete
Net::FTP=GLOB(0x24eae30)>>> MFMT 19990101010101 test.test
Net::FTP=GLOB(0x24eae30)<<< 213 Modify=19990101010101; test.test
Net::FTP=GLOB(0x24eae30)>>> QUIT
Net::FTP=GLOB(0x24eae30)<<< 221 Goodbye.
1
2
3
4
5
6
7
8
9
10
[root@***** prv]# stat test.test
File: `test.test'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 2ah/42d Inode: 206152378 Links: 1
Access: (0644/-rw-r--r--) Uid: (****/*****) Gid: ( ****/ *****)
Access: 1999-01-01 02:01:01.000000000 +0100
Modify: 1999-01-01 02:01:01.000000000 +0100
Change: 2011-02-23 15:58:02.000000000 +0100
[root@**** prv]#