Skocz do zawartości
  • Cześć!

    Witaj na forum RootNode - aby pisać u nas musisz się zarejestrować, a następnie zalogować. Posty pisane z kont niezarejestrowanych nie są widoczne publicznie.

archiwizacja ponownie...


zlotowinfo

Rekomendowane odpowiedzi

swego czasu pomogliście mi z kodem poniżej, jednak widzę że coś nie działa prawidłowo

nie ma żadnej kopii z pierwszego dnia miesiąca, za co odpowiada ta linia:
if [ $D == 1 ]; then cp ${updatefile}_last.tar.gz ${archdir}/`date +"%F"`_${hosting}.tar.gz; fi

 

 

hosting="mojdostawca";
konto="mojekonto";
toarchfiles="*"
logstat="--exclude=logs/* --exclude=stats/* --exclude=awstats/* --exclude=ip/* --exclude=daneIP/* --exclude=statx/*"


Y=`date +"%Y"`;       homedir=/home/$konto;  
M=`date +"%m"`;       archdir=$homedir/tmp;   mkdir $archdir &> /dev/null
D=`date +"%d"`;       cd $homedir/domains;

lastdayfile=${archdir}/${Y}_${hosting}_5daychange
updatefile=${archdir}/${Y}_${hosting}_update
yearfile=${archdir}/${Y}_${hosting}_full.tar.gz

#- pełne archiwum roczne:
if [ ! -e $yearfile ]; then tar czf $yearfile --exclude-from=$homedir/domains/cron/archiwizer.no $toarchfiles; fi


#- update przyrostu rocznego, z pozostawieniem: z każdego 1 dnia miesiąca i 4 ostatnie update
mv ${updatefile}2.tar.gz ${updatefile}3.tar.gz &> /dev/null
mv ${updatefile}1.tar.gz ${updatefile}2.tar.gz &> /dev/null
mv ${updatefile}_last.tar.gz ${updatefile}1.tar.gz &> /dev/null
find $toarchfiles -newermt `date -r $yearfile +%F` -type f | tar czf ${updatefile}_last.tar.gz --files-from=/dev/stdin --exclude-from=$homedir/domains/cron/archiwizer.no
if [ $D == 1 ]; then cp ${updatefile}_last.tar.gz ${archdir}/`date +"%F"`_${hosting}.tar.gz; fi


#- update codzienny, zmian z 5 ostatnich dni, z pozostawieniem 3 ostatnich
mv ${lastdayfile}1.tar.gz ${lastdayfile}2.tar.gz &> /dev/null
mv ${lastdayfile}_last.tar.gz ${lastdayfile}1.tar.gz &> /dev/null
find $toarchfiles -mtime -5 -type f | tar czf ${lastdayfile}_last.tar.gz --files-from=/dev/stdin --exclude-from=$homedir/domains/cron/archiwizer.no $logstat

 

Odnośnik do komentarza
Udostępnij na innych stronach

chyba sam już sczaiłem swój błąd
if [ $D == 1 ]; a to przecież nie php , widzę że inne zmienne są w klamrach,

więc powinno być if [ ${D} == 1 ];

zaś w tym linku co podał mariaczi w cudzysłowach, ostatecznie zmieniam na
if [ ! -e $monthfile ]; then cp ${updatefile}_last.tar.gz ${monthfile}.tar.gz; FI
bo dla rocznego pliku chociaż to działa

Edytowane przez zlotowinfo
Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystając z forum, wyrażasz zgodę na: Warunki użytkowania, Regulamin, Polityka prywatności.