Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Wget + tar

4 views
Skip to first unread message

Maximilian Koch

unread,
Mar 20, 2012, 4:46:55 PM3/20/12
to
Hallo zusammen,

ich komme nicht weiter, und darum frage ich die erfahrenen..

ich lade anhand einer Datei die FTP Adressen aus, und arbeite diese ab,
dabei Kopiere ich mit wget sämtliche Dateien auf dem Server auf meinen
internen Server als backup.

nun möchte ich anstelle der einmzenen Dateien je ein Tar file. aber wie?


der jetzige Code funtioniert tadellos, aber eben es werden alle einzelnen
dateien im Ordner abgelegt..

wget -rP ${BACKUPORDNER}/'Backup vom '${DATUM} -i domains-WEBSERVER.txt

Danke für die Hilfe


Stefan Enzinger

unread,
Mar 22, 2012, 7:21:22 AM3/22/12
to
Da sich niemand angesprochen fühlt versuche ich es einmal

On 03/20/2012 09:46 PM, Maximilian Koch wrote:

> der jetzige Code funtioniert tadellos, aber eben es werden alle einzelnen
> dateien im Ordner abgelegt..
>
> wget -rP ${BACKUPORDNER}/'Backup vom '${DATUM} -i domains-WEBSERVER.txt

Komprimier den Ordner doch einfach nach dem Download weg.

ungefähr so:

OLD_DIR="$PWD"
cd "${BACKUPORDNER}"
tar -cjf "Backup vom ${DATUM}.tbz" "Backup vom ${DATUM}"
rm -rf Backup vom ${DATUM}
cd $OLD_DIR

lg

Thomas 'PointedEars' Lahn

unread,
Mar 24, 2012, 6:21:09 AM3/24/12
to
Stefan Enzinger wrote:

> On 03/20/2012 09:46 PM, Maximilian Koch wrote:
>> der jetzige Code funtioniert tadellos, aber eben es werden alle einzelnen
>> dateien im Ordner abgelegt..
>>
>> wget -rP ${BACKUPORDNER}/'Backup vom '${DATUM} -i domains-WEBSERVER.txt
>
> Komprimier den Ordner doch einfach nach dem Download weg.
>
> ungefähr so:
>
> OLD_DIR="$PWD"
> cd "${BACKUPORDNER}"
> tar -cjf "Backup vom ${DATUM}.tbz" "Backup vom ${DATUM}"
> rm -rf Backup vom ${DATUM}
> cd $OLD_DIR

Besser so:

date_str=$(date +%Y%M%dT%H%m%S.%N%z-$$)
# ...
cd "${backup_dir}" \
&& tar -cvjf "Backup_vom_${date_str}.tar.bz2" "Backup vom ${date_str}" \
&& rm -rfv "Backup vom ${date_str}" \
&& cd -

Das hat gegenüber Deiner Lösung folgende Vorteile:

- Einsparung einer Variablen;
- durch Kleinschreibung geringeres Risiko, Umgebungsvariablen zu
überschreiben/überlagern;
- tar(1) nur, wenn cd(1) erfolgreich;
- Feedback, was tar(1) tut (kann mit 2>/dev/null unterdrückt werden);
- keine Leerzeichen in Dateinamen (sollte auch für das Verzeichnis gelten);
- relativ eindeutiger und kompatibler Dateiname, Genauigkeit anpassbar
(dito);
- rm(1) nur, wenn tar(1) erfolgreich(!);
- Feedback, was rm(1) tut (s. o.);
- kein Löschversuch der Dateien/Verzeichnisse namens "Backup", "vom" und
"${DATUM}"(!);
- cd(1) nur, wenn rm(1) erfolgreich; kann man am Ende von _nicht-gesourcten_
Scripts aber auch weglassen, da $PWD bezogen auf die jeweilige Shell ist.

--
PointedEars

Please do not Cc: me. / Bitte keine Kopien per E-Mail.

Stefan Enzinger

unread,
Mar 24, 2012, 7:43:47 AM3/24/12
to
On 03/24/2012 11:21 AM, Thomas 'PointedEars' Lahn wrote:
> Stefan Enzinger wrote:

>> OLD_DIR="$PWD"
>> cd "${BACKUPORDNER}"
>> tar -cjf "Backup vom ${DATUM}.tbz" "Backup vom ${DATUM}"
>> rm -rf Backup vom ${DATUM}
>> cd $OLD_DIR
>
> Besser so:

Danke fürs's ausbessern, erklären.
Manches hat sich allerdings ergeben, weil ich konsistent mit dem
gegebenen Code bleiben wollte. Wohl nicht immer eine gute Idee :)

> date_str=$(date +%Y%M%dT%H%m%S.%N%z-$$)
> # ...
> cd "${backup_dir}" \
> && tar -cvjf "Backup_vom_${date_str}.tar.bz2" "Backup vom ${date_str}" \
> && rm -rfv "Backup vom ${date_str}" \
> && cd -
>
> Das hat gegenüber Deiner Lösung folgende Vorteile:
> [...]
> - kein Löschversuch der Dateien/Verzeichnisse namens "Backup", "vom" und
> "${DATUM}"(!);

Wow, das ist natürlich ein grober Fehler

lg

Maximilian Koch

unread,
Mar 27, 2012, 1:51:23 PM3/27/12
to
Hallo, Danke für die Tipps, hat wunerbar funktioniert..


0 new messages