Schrift
[thread]6990[/thread]

Ntbackup vs. Log...: Ich brauch hilfe



<< |< 1 2 >| >> 13 Einträge, 2 Seiten
zipster
 2005-05-13 17:01
#54864 #54864
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
Hi,

ich habe ein kleines Script geschrieben das Ntbackup ausführt und dem Namen das Aktuelle Datum anhängt. Mein Chef meinte jetzt das er auch noch gerne hätte das die Logdatei davon mitgenommen wird. Und genau hier fängt mein Problem nun an.

Ich weiß nicht wie ich feststellen soll welche Logdatei die Logdatei ist die ich brauche. Den Ntbackup hat die angewohnheit Logdateien von 1-10 zu erstellen und nach und nach die durcharbeitet.

Das heißt beim ersten Sicherungsdurchgang nimmt ntbackup backup01.log, beim zweiten backup02.log,.... und beim 11ten backup01.log,...usw.


Wie kann ich nun bestimmen Welche der 10 Dateien ich brauch?
Ich habe versucht es am Änderungsdatum festzumachen. Aber ich weiß ja nicht um wieviel Uhr genau Ntbackup die Datei anlegt. Dann habe ich versucht nur das Datum zu nehmen, geht aber auch nicht. Denn wenn an einem Tag 2 Sicherungen gemacht werden holt er sich beide Dateien....

Hilfe! Wie bekomme ich die richtige Datei?

Hier mein Code
Code: (dl )
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
#! perl

use strict;
use warnings;
use File::Find;
use File::Copy;
use POSIX qw(strftime);

my %daten;
my %Config;
my $ini = "$ARGV[0]";
my $programmpfad = $0;
$programmpfad =~ s/[^\\]*?$//;
my $ini_full = $programmpfad.$ini;
my $datum = date(1);
my $datum_datei = date(2);
print $datum_datei;
my $userprofile = qx{echo %userprofile%};
chomp $userprofile;
my $ntlogpfad = $userprofile.'\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data';
open (INI, $ini_full) or die "Fehler bei INI-Datei $ini: $!";
while (<INI>)
{
next if /^#/;
chomp;
if (/^\s*(\w+)\s*=\s*(.*)/) #die erste () ist $1, und die die zweite () ist $2;
{
$Config{$1} = $2;
}
}
my $befehl = $Config{ntbackuppfad}." backup \"\@".$programmpfad.$Config{bksname}."\" ".$Config{parameter}." \"".$Config{backuppfad}.$Config{backupname}." ".$datum.".bkf\"";
system "$befehl";
if (($Config{parameter} =~ /\/L:(.)/)or($Config{parameter} =~ /\/l:(.)/))
{
if (($1 ne 'n')or($1 ne 'N'))
{
find(\&find_log,$ntlogpfad);
if (not (-e $Config{logpfad}))
{
$Config{logpfad} = $programmpfad;
}
for my $zeile (sort keys %{$daten{log}})
{

if ($daten{log}{$zeile} eq $datum_datei)
{

copy($ntlogpfad."\\".$zeile, $Config{logpfad});
}
}
}
}

sub find_log
{
if( -e $File::Find::name)
{
my $filedate = (stat($File::Find::name))[9];
my $formtime = strftime("%d.%m.%Y", localtime $filedate);
print $formtime;
$daten{log}{$_} = $formtime;
}
}
sub date
{
my $modus = shift;
my ($mday,$mon,$year)=(localtime(time))[3,4,5];
my $datum = sprintf("%04d-%02d-%02d",$year+1900,$mon+1,$mday);
my $datum_datei =sprintf("%02d.%02d.%04d",$mday,$mon+1,$year+1900);
if ($modus == 1 )
{
return $datum
}
else
{
return $datum_datei
}
}
Crian
 2005-05-13 17:50
#54865 #54865
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Vor dem Start den Vorhandenseinsstatus und ggf. die Änderungszeiten der 10 Dateien merken, danach nochmal ermitteln. Dann dürftest Du wissen, welche verändert wurde.

Vielleicht gibt es aber auch einen Parameter, bei dem man die Logdatei angeben kann?\n\n

<!--EDIT|Crian|1115992249-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
zipster
 2005-05-13 17:59
#54866 #54866
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
Das ist ne gute Idee!
Manchmal steht man irgendwie voll aufm Schlauch.
Ich denke euch wirds auch so gehen. :blush:

Ne den Paramter gibt es nicht. Ich habe schon etliche Windowsforen durchstöbert.

Ntbackup ist in manchen Fällen zeimlich... mmhhh wie soll ich sagen .... KACKE!
Strat
 2005-05-13 18:08
#54867 #54867
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
vielleicht hilft's auch, sich das dateidatum anzuschauen... wenn ein backup gerade erst gelaufen ist, durfte das dateidatum (-M) ziemlich um 0 herum liegen
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
renee
 2005-05-13 18:17
#54868 #54868
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
das ist aber auch bei 0, wenn 2 Sicherungen an einem Tag gemacht wurden...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Strat
 2005-05-13 19:22
#54869 #54869
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
@renee: man weiss vermutlich den zeitpunkt, wann das backup gelaufen ist; im programm kann man feststellen, wie spaet es ist, und somit, wie viel zeit inzwischen vergangen ist. -M gibt die anzahl der tage, die seit der modification vergangen ist, zurueck; und diese anzahl (bzw. deren nachkommastellen) kann man einfach so umrechnen, dass man auf den zeitpunkt kommt (z.B. $time = time - 24 * -M $file ). Und wenn $time (in Unix Epoch Seconds) mit der Backupzeit uebereinstimmt (weiss nicht, ob es den timestamp des backupbeginns oder -endes hat), weiss man, welche datei das log enthaelt.

Crian's Loesung hat z.B. das problem, dass man nicht feststellen kann, welches log zu welchem backup passt, wenn mehrere backups parallel gelaufen sind. "Meine" Loesung verkleinert dieses problem um einiges.
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
sesth
 2005-05-13 19:30
#54870 #54870
User since
2005-02-01
181 Artikel
BenutzerIn
[default_avatar]
-M gibt bei mir (W2K) eine Gleitkommazahl zurück. Strats Lösung sollte also funktionieren.
Gruß
Thomas
pKai
 2005-05-13 23:24
#54871 #54871
User since
2005-02-18
357 Artikel
BenutzerIn
[default_avatar]
-M gab doch "schon immer" (sicher in Perl4) eine Floatzahl zurück!?

Was ich nicht verstehe ist, wann denn die gesuchte Log-Datei nicht die "jüngste" ist (kleinstes -M, wobei -M negativ sein kann, wenn die datei jünger als der perl-Prozess ist)?
Was passiert denn, wenn die Logdatei umbenannt wird. Legt er dann beim nächsten mal wieder die gleiche Nummer an? Dann würde sich das sowieso auf einen festen Namen reduzieren.\n\n

<!--EDIT|pKai|1116012287-->
I sense a soul in search of answers.
renee
 2005-05-14 00:24
#54872 #54872
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=zipster,13.05.2005, 15:01][...]
Wie kann ich nun bestimmen Welche der 10 Dateien ich brauch?
Ich habe versucht es am Änderungsdatum festzumachen. Aber ich weiß ja nicht um wieviel Uhr genau Ntbackup die Datei anlegt. Dann habe ich versucht nur das Datum zu nehmen, geht aber auch nicht. Denn wenn an einem Tag 2 Sicherungen gemacht werden holt er sich beide Dateien....
[...][/quote]
weiß er wohl doch nicht so genau...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pKai
 2005-05-14 01:02
#54873 #54873
User since
2005-02-18
357 Artikel
BenutzerIn
[default_avatar]
Er startet mit system also (synchron) ntbackup.
Danach sucht er das Logfile um was damit zu machen.
Also sollte das gesuchte Logfile das neueste sein, außer es könnten gleichzeitig mehrere Instanzen von ntbackup laufen?
I sense a soul in search of answers.
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2005-05-13 17:01.