Output von tar in ein Logfile umleiten.

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
chris390
Beiträge: 85
Registriert: 10.02.2009 11:39:16

Output von tar in ein Logfile umleiten.

Beitrag von chris390 » 17.10.2010 18:47:56

Hallo zusammen,

ich möchte die Ausgabe von tar in ein Logfile umleiten, ist an sich kein Problem, aber dar ich schon mit buffer am ende arbeite,
bekomme ich ein Prob. mit der Umleitung der Ausgabe in ein Logfile.

Code: Alles auswählen

START=`date +%s`
                echo "***** Das schreiben auf Tape startet jetzt..."
                $TAR -cvvf - $SABACKUP --listed-incremental=$SALOGFILE --exclude-from=sockets --absolute-names --totals | buffer -o $BACKUPTO
                echo
ENDE=`date +%s`
Probiert hatte ich es schon mit:

Code: Alles auswählen

START=`date +%s`
                echo "***** Das schreiben auf Tape startet jetzt..."
                $TAR -cvvf - $SABACKUP --listed-incremental=$SALOGFILE --exclude-from=sockets --absolute-names --totals | buffer -o $BACKUPTO | tee output.log
                echo
ENDE=`date +%s`
und mit:

Code: Alles auswählen

START=`date +%s`
                echo "***** Das schreiben auf Tape startet jetzt..."
                $TAR -cvvf - $SABACKUP --listed-incremental=$SALOGFILE --exclude-from=sockets --absolute-names --totals | buffer -o $BACKUPTO >& output.log
                echo
ENDE=`date +%s`
Ohne buffer läuft's, dar ich den buffer brauche komme ich jetzt nicht weiter.
Hat jemand von euch noch eine Idee?

Gruß
Christoph

diggerchen
Beiträge: 115
Registriert: 15.01.2005 22:35:26

Re: Output von tar in ein Logfile umleiten.

Beitrag von diggerchen » 17.10.2010 20:23:31

Habs mal nicht getestet aber wenn ich die Manpage von tee richtig verstehe
tee - read from standard input and write to standard output and files
dann könnte das so gehen:

Code: Alles auswählen

$TAR -cvvf - $SABACKUP --listed-incremental=$SALOGFILE --exclude-from=sockets --absolute-names --totals | tee output.log | buffer -o $BACKUPTO

Benutzeravatar
chris390
Beiträge: 85
Registriert: 10.02.2009 11:39:16

Re: Output von tar in ein Logfile umleiten.

Beitrag von chris390 » 18.10.2010 18:24:52

Hallo,

nach der Variante schreibt er mir das Backup in die output.log und nicht auf's Tape. Hast du noch eine andere Idee???
Ich bin im momentan völlig planlos.

Gruß
Christoph

yeti

Re: Output von tar in ein Logfile umleiten.

Beitrag von yeti » 18.10.2010 18:35:25

diggerchen hat geschrieben:Habs mal nicht getestet aber wenn ich die Manpage von tee richtig verstehe
tee - read from standard input and write to standard output and files
dann könnte das so gehen:

Code: Alles auswählen

$TAR -cvvf - $SABACKUP --listed-incremental=$SALOGFILE --exclude-from=sockets --absolute-names --totals | tee output.log | buffer -o $BACKUPTO
Das jagt eine Kopie des generierten Archives ins Logfile, wenn ich das im Trockenschwimmen richtig interpretiere.

Probier mal

Code: Alles auswählen

tar cvvf - /home/tmp 2>/tmp/test.tar.log | cat > /tmp/test.tar $(: simuliert hier buffer :) 
stattdessen.

diggerchen
Beiträge: 115
Registriert: 15.01.2005 22:35:26

Re: Output von tar in ein Logfile umleiten.

Beitrag von diggerchen » 18.10.2010 18:41:36

yeti hat geschrieben:Probier mal

Code: Alles auswählen

tar cvvf - /home/tmp 2>/tmp/test.tar.log | cat > /tmp/test.tar $(: simuliert hier buffer :) 
stattdessen.
Jepp... mein Vorschlag war Quatsch. Das sieht besser aus!

Benutzeravatar
chris390
Beiträge: 85
Registriert: 10.02.2009 11:39:16

Re: Output von tar in ein Logfile umleiten.

Beitrag von chris390 » 18.10.2010 18:49:30

An welcher stelle kommt der buffer, ohne den geht es nicht!?!

diggerchen
Beiträge: 115
Registriert: 15.01.2005 22:35:26

Re: Output von tar in ein Logfile umleiten.

Beitrag von diggerchen » 18.10.2010 18:51:05

Code: Alles auswählen

$TAR -cvvf - $SABACKUP --listed-incremental=$SALOGFILE --exclude-from=sockets --absolute-names --totals 2> output.log | buffer -o $BACKUPTO
...wenn ich nicht wieder total daneben liege :roll:

Benutzeravatar
chris390
Beiträge: 85
Registriert: 10.02.2009 11:39:16

Re: Output von tar in ein Logfile umleiten.

Beitrag von chris390 » 18.10.2010 19:02:45

diggerchen hat geschrieben:

Code: Alles auswählen

$TAR -cvvf - $SABACKUP --listed-incremental=$SALOGFILE --exclude-from=sockets --absolute-names --totals 2> output.log | buffer -o $BACKUPTO
...wenn ich nicht wieder total daneben liege :roll:
He,

das sieht ja mal super aus. :D
Leider fällt dadurch die Ausgabe auf dem Bildschirm weg!

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Output von tar in ein Logfile umleiten.

Beitrag von rendegast » 18.10.2010 19:17:05

Code: Alles auswählen

export TAR=....
export SABACKUP=....
export SALOGFILE=....
export BACKUPTO=....

START="$(date +%s)"
{
    echo "***** Das schreiben auf Tape startet jetzt..."
    $TAR -cvvf - $SABACKUP --listed-incremental=$SALOGFILE --exclude-from=sockets --absolute-names --totals | buffer -o $BACKUPTO
    echo
} | tee output.log
ENDE="$(date +%s)"
?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
chris390
Beiträge: 85
Registriert: 10.02.2009 11:39:16

Re: Output von tar in ein Logfile umleiten.

Beitrag von chris390 » 18.10.2010 19:37:28

rendegast hat geschrieben:

Code: Alles auswählen

export TAR=....
export SABACKUP=....
export SALOGFILE=....
export BACKUPTO=....

START="$(date +%s)"
{
    echo "***** Das schreiben auf Tape startet jetzt..."
    $TAR -cvvf - $SABACKUP --listed-incremental=$SALOGFILE --exclude-from=sockets --absolute-names --totals | buffer -o $BACKUPTO
    echo
} | tee output.log
ENDE="$(date +%s)"
?
Lieder kommt nur der echo in die Logdatei und der Rest nicht! Was macht man mit export???

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Output von tar in ein Logfile umleiten.

Beitrag von rendegast » 18.10.2010 20:02:09

export sorgt dafür, daß die Variablen auch in der Klammer {...} existieren.
EDIT {...} = "Subshell"
Lieder kommt nur der echo in die Logdatei und der Rest nicht!
Die Ausgabe ist descriptor 2,
Änderung:

Code: Alles auswählen

{
    ......
} 2>&1 | tee output.log
und alles wird gut:

Code: Alles auswählen

$ cat output.log
***** Das schreiben auf Tape startet jetzt...
/bin/tar: Verzeichnis „/bin“ ist neu.
drwxr-xr-x root/root         0 2010-10-16 19:41 /bin/
-rwxr-xr-x root/root    811156 2010-04-10 14:03 /bin/bash
-rwxr-xr-x root/root     26356 2010-09-21 09:06 /bin/bunzip2
-rwxr-xr-x root/root    408588 2010-08-23 10:57 /bin/busybox
hrwxr-xr-x root/root         0 2010-09-21 09:06 /bin/bzcat Verknüpfung zu /bin/bunzip2
lrwxrwxrwx root/root         0 2010-09-24 02:46 /bin/bzcmp -> bzdiff
....
-rwxr-xr-x root/root      2015 2010-01-20 19:58 /bin/zforce
-rwxr-xr-x root/root      5597 2010-01-20 19:58 /bin/zgrep
-rwxr-xr-x root/root      1733 2010-01-20 19:58 /bin/zless
-rwxr-xr-x root/root      2416 2010-01-20 19:58 /bin/zmore
-rwxr-xr-x root/root      4952 2010-01-20 19:58 /bin/znew
Gesamtzahl geschriebener Bytes: 4853760 (4,7MiB, 412MiB/s)


Nebenbei, die Datei "sockets" (mit den exclude-Patterns) muß existieren, sonst gibt es einen Fehler:

Code: Alles auswählen

$ ./test.sh
***** Das schreiben auf Tape startet jetzt...
/bin/tar: sockets: Datei oder Verzeichnis nicht gefunden
/bin/tar: Error is not recoverable: exiting now

was dann aber auch in der output.log landet ;) :

Code: Alles auswählen

$ cat output.log 
***** Das schreiben auf Tape startet jetzt...
/bin/tar: sockets: Datei oder Verzeichnis nicht gefunden
/bin/tar: Error is not recoverable: exiting now

Zuletzt geändert von rendegast am 19.10.2010 22:42:46, insgesamt 1-mal geändert.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
chris390
Beiträge: 85
Registriert: 10.02.2009 11:39:16

Re: Output von tar in ein Logfile umleiten.

Beitrag von chris390 » 19.10.2010 19:50:43

Hallo zusammen,

vielen Dank für deine Mühe, jetzt läuft es... :THX:

Gruß
Christoph

Antworten