8 Einträge, 1 Seite |
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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
001: #!/usr/bin/perl 002: use strict; 003: use MIME::Explode; 004: use File::Path; 005: 006: my $infile = '/scripts/deploy/test.txt'; #Datei zum Zwischenspeichern der Mail 007: my $deployroot = '/deployshare/_Deployment/02_Deployments'; #Pfad zu den Deployments 008: my $ticket = ""; 009: my $dateiname = ""; 010: my $logfile = "unzip.log"; 011: 012: #Zwischenspeichern der Mail 013: 014: open(IN,">$infile") or die "Konnte Tempdatei $infile nicht öffnen"; 015: while(<>){ 016: print IN $_; 017: } 018: close IN; 019: 020: open(IN,"<$infile") or die "Konnte Tempdatei $infile nicht öffnen"; 021: while(<IN>){ 022: $_ =~ m/\[Ticket#(\d+)/; 023: $ticket = $1; 024: } 025: close IN; 026: 027: open(IN,"<$infile") or die "Konnte Tempdatei $infile nicht öffnen"; 028: while(<IN>){ 029: $_ =~ m/filename\=\"(.*?\.zip)/; 030: $dateiname = $1; 031: } 032: close IN; 033: 034: #Auslesen des Dateinamens ohne Extension 035: 036: $dateiname =~ m/^(.*?)\./; 037: my $deployname = $1; 038: 039: #Auslesen des Jahres aus dem Dateinamen 040: 041: $dateiname =~ m/(\d\d)......\.zip$/; 042: my $deployyear = $1; 043: 044: #Auslesen des Deployment Präfix 045: 046: $dateiname =~ m/^(....)/; 047: my $prefix = $1; 048: 049: #Erstellen des Pfads 050: my $deploypath = $deployroot."/GJ_".$deployyear."/".$deployname; 051: my $input = $deploypath."/".$dateiname; 052: my $output = $deploypath."/".$ticket."/"; 053: umask "0000"; 054: #Prüfen ob Verzeichnis schon vorhanden 055: if (-d $deploypath){ 056: anhangkopieren($deploypath); 057: #Entpacken des Zips 1.Attribut input, 2. Attr. output, 3. Attr. log 058: entpacken($input,$output,$logfile); 059: } 060: #Fallunterscheidung nach Deployments, Verzeichnis erstellen und Anhang kopieren 061: 062: elsif ($prefix eq "oms_"){ 063: 064: mkpath ([$deploypath.'/oms', $deploypath.'/Backup/P/oms', 065: $deploypath.'/Backup/S/oms', $deploypath.'/'.$ticket]); 066: 067: anhangkopieren($deploypath) or die("Anhang konnte nicht aus Mail extrahiert werden"); 068: entpacken($input,$output,$logfile); 069: } 070: elsif ($prefix eq "PT5_"){ 071: 072: mkpath ([$deploypath.'/website2', $deploypath.'/Backup/P/website2', 073: $deploypath.'/Backup/S/website2', $deploypath.'/'.$ticket]); 074: 075: 076: anhangkopieren($deploypath) or die("Anhang konnte nicht aus Mail extrahiert werden"); 077: entpacken($input,$output,$logfile); 078: } 079: elsif ($prefix eq "evo_"){ 080: 081: mkpath ([$deploypath.'/admall', $deploypath.'/Backup/P/admall', 082: $deploypath.'/Backup/S/admall', $deploypath.'/'.$ticket]); 083: 084: anhangkopieren($deploypath); 085: entpacken($input,$output,$logfile); 086: } 087: else { 088: die("+++++ $dateiname Deployment kann nicht zugeordnet werden +++++"); 089: }; 090: 091: 092: #Extrahieren des Mailanhangs aus der Mail und speichern des Anhangs in Outputdir 093: 094: sub anhangkopieren{ 095: my $explode = MIME::Explode->new( 096: output_dir => "$_[0]", 097: mkdir => 0777, 098: decode_subject => 1, 099: check_content_type => 1, 100: content_types => ["application/x-zip-compressed"], 101: types_action => "include" 102: ); 103: 104: 105: open(MAIL, "<$infile") or 106: die("Couldn't open file.mbox for reading: $!\n"); 107: open(OUTPUT, ">tmp_file.tmp") 108: or die("Couldn't open file.tmp for writing: $!\n"); 109: my $headers = $explode->parse(\*MAIL, \*OUTPUT); 110: close(OUTPUT); 111: close(MAIL); 112: } 113: 114: sub entpacken{ 115: use Archive::Zip qw( :ERROR_CODES :CONSTANTS ); 116: my $zipfile = Archive::Zip->new($_[0]); 117: if(defined $zipfile){ 118: my @members = $zipfile->members(); 119: foreach my $member (@members){ 120: chdir $_[1]; 121: $zipfile->extractMember($member); 122: open (LOG,">$_[2]"); 123: print LOG $_[1].$member." erstellt"; 124: close LOG; 125: } 126: } 127: }
QuoteWieso muss der User die Systemzeit ändern!?dass dieser user scheinbar kein Recht hat die Systemzeit auf der CIFS Freigabe zu ändern
8 Einträge, 1 Seite |