Отправляет email-рассылки с помощью сервиса Sendsay

KirovLUG: пользователи Linux в Вятке

Архивация lindocs/unsorting

Архивация lindocs/unsorting

Для архивирования lindocs/unsorting создан скрипт архивации:

begin ~/bin/ldocs_tar.sh #!/bin/sh

DIR_PREFIX=/home/public/backup/lindocs
DIR_FROM=$DIR_PREFIX/unsorting
DIR_TO=$DIR_PREFIX/tar/unsorting
TAR_COM="nice -+19 tar -cj"

cd $DIR_FROM

############################################################
#Для полной архивации используется
# ldocs_tar.sh init
#Для ежедневной выборочной архивации
# ldocs_tar.sh daily
############################################################
case "$1" in
init)
rm -rf $DIR_TO/*
#Шаг 1 - архивация файлов в корневом каталоге
listing=`find . -maxdepth 1 -type f -printf " %f"`
$TAR_COM -f $DIR_TO/root.tar.bz2 $listing
#Шаг 2 - архивация подкаталогов (только первый уровень)
for td in `find . -maxdepth 1 -type d -printf "%f\n"`; do
if [ `echo $td | awk '{print substr($0,1,1)}'` != "." ]; then
$TAR_COM -f $DIR_TO/$td.tar.bz2 $td
fi
done
;;

daily)
#Архивация только измененных подкаталогов или целиком всех файлов в
#корневом каталоге если в нем были изменения
for td in `find . -maxdepth 1 -type d -mtime -1 -printf "%f\n"`; do
if [ `echo $td | awk '{print substr($0,1,1)}'` != "." ]; then
rm -rf $DIR_TO/$td.tar.bz2
#Архивация подкаталогов
$TAR_COM -f $DIR_TO/$td.tar.bz2 $td
else
rm -rf $DIR_TO/root.tar.bz2
#Архивация файлов корневого каталога
listing=`find . -maxdepth 1 -type f -printf " %f"`
$TAR_COM -f $DIR_TO/root.tar.bz2 $listing
fi
done
#Аддитивная архивация только изменненых данных
changed=`find . -type f -mtime -1 | wc -l`
if [ $changed -ne 0 ]; then
DATE_FROM=`date --date="1 day ago" +%Y%m%d`
$TAR_COM -N "$DATE_FROM" -f
$DIR_TO/__unsorting_ch$DATE_FROM.tar.bz2 *
fi
;;

*)
echo $"Usage: $0 {init|daily}"
exit 1
esac
end ~/bin/ldocs_tar.sh Этот скрипт поручено запускать cron'у в 18.01:

$ EDITOR=/usr/bin/mcedit crontab -e

SHELL=/bin/sh
PATH=/etc:/bin:/usr/bin:/usr/local/bin
HOME=/home/koal

01 18 * * * /home/koal/bin/ldocs_tar.sh daily
Теперь можно выполнить первичную архивацию:

$ ~/bin/ldocs_tar.sh init

Все.

Следующая забота об архивации будет сводится только к синхронизациии
копий на рабочей станции и сервере с помощью rsync:

$ export PREFIX=/home/public/backup/lindocs; \
nice -+19 rsync -e ssh -vac --force --delete --backup \
--backup-dir=$PREFIX/.m_unsorting/`date +%Y-%m-%d` \
/mnt/hdc7/1/Linux/new/new/ koal@bridge:$PREFIX/unsorting

Ответить   Tue, 26 Oct 2004 11:48:22 +0400 (#250765)