Tar problémák

Fórumok

Szeretnék tar-ral és a find paranccsal naponta backupot készíteni! A find -mtime -1 | tar cf backup.tar -T - parancs hatására azonban azokat is archiválja, amiket nagyon nem kellene, és gondolom ezt a . miatt teszi. Azonban ha a tar-t kiegészítem az --exclude . -tal, akkor a backup.tar üresen jön létre. Mi lehet a megoldás?

Előre is köszönöm!

Hozzászólások

Miért van az, hogy nem tudopk új témát indítani?

amugy szeritem man find, man tar, google is segit, ha okosat kerdezel tole.

t

Azokat már próbáltam. A -T hatására elvileg fájlból kellene beolvasni az archiválandó fájlok nevét. És sajnos ott van a . is.
Amikor a .-ot archiválja, akkor viszont húzza az összes benne lévő alkönyvtárat is, amit természetesen nem szeretnék.
Én csak a --exclude FILE-t találtam, de ezt alkalmazva a .-ra, üres archívumot hoz létre.

Te egyébként hogyan oldanád meg ezt a problémát?

számtalan megoldás van, én igy oldottam meg:



#!/bin/bash

bzipped=/mnt/raid/fullbackup/napi/log
nyers=/mnt/raid/fullbackup/napi/log/nyers/
cd $bzipped


DATUM=`date`
date=`date '+%Y-%m-%d_%H'`
echo "Mentés indítása: $DATUM"
echo ""


# Befejezett logok atmentese                     | a mintan kivul (mysql)  mindent kiprintelek
for logfiles in `find /var/log/ -name '*.[0-9]*' | grep -v /var/log/mysql/`; do
    mv $logfiles $nyers
#    echo "$logfiles"
done

# rendszer altal betomoritett logok
for logfiles in `find /var/log/ -name '*.[0-9].gz'`; do
    mv $logfiles $nyers
done


# Folyamatos logok atmentese
cp /var/log/xferlog $nyers
echo "0" > /var/log/xferlog
cp /var/log/ftp_access.log $nyers
echo "0" > /var/log/ftp_access.log
cp /var/log/ftp_auth.log $nyers
echo "0" > /var/log/ftp_auth.log
cp /var/log/ftp_paranoid.log $nyers
echo "0" > /var/log/ftp_paranoid.log
cp /var/log/php/phperror.log $nyers
echo "0" > /var/log/php/phperror.log


echo Ossz_meret: `du -sh $nyers`

tar -zcvf $date-log.tar.gz $nyers

echo Tomoritve: `du -h $date-log.tar.gz | awk {'print $1'}`

rm -f $nyers/*

DATUM=`date`
echo "Mentés befejezve: $DATUM"


Használd a tar cf backup.tar $(find /home/user/mittomén/ -mtime -1 -print0) parancsot. Én is beleszaladtam már (mint gondolom mások is), hogyha lehagyjuk, a keresés helyét, akkor a "." fájl is belekerül a tarba. Valamint a csövek helyett érdemes észrevenni, hogy több becsomagolandó fájlt is meg lehet adni a tarnak.

Nem mai topic, de en is eppen ezzel szivtam. Majdnem elfogyott a hely, mire feltunt, hogy picit nagy lesz a tar.gz merete :) Sztem a megoldas a tar egyik opcioja (hogy mik vannak...)
-type f
Es igy konyvtarakat mar nem csomagol, csak fileokat.

Ez nem pont az eredeti kerdesre valasz (bar igazabol a kerdezo nem arulta el, hogy pontosan mit szeretne a backupban latni :-), de ha csak a ./-t akarja kihagyni, akkor ilyesmi kell:


GNU finddal: find -mindepth 1 -mtime -1 | tar ...
nem GNU finddal: find -mtime -1 | grep -v '^\.$' | tar ...