Архивация 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