URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 60015
[ Назад ]

Исходное сообщение
"Помогите со скриптом!!!"

Отправлено Igoryan , 14-Сен-05 09:13 
Значит так есть папка с файлами в которую всё льют что-то.
Надо зделать такой скрипт который бы смотрел что там нового в этой папке которые файлы менялись и копировал эти файлы в другую дерикторию.

Содержание

Сообщения в этом обсуждении
"Помогите со скриптом!!!"
Отправлено Makc2K , 14-Сен-05 10:21 
>Значит так есть папка с файлами в которую всё льют что-то.
>Надо зделать такой скрипт который бы смотрел что там нового в этой
>папке которые файлы менялись и копировал эти файлы в другую дерикторию.
>


man find - очень полезная штука, особенно в твоем случае.


"Помогите со скриптом!!!"
Отправлено NoName , 14-Сен-05 12:30 
>>Значит так есть папка с файлами в которую всё льют что-то.
>>Надо зделать такой скрипт который бы смотрел что там нового в этой
>>папке которые файлы менялись и копировал эти файлы в другую дерикторию.
>>
>
>
>man find - очень полезная штука, особенно в твоем случае.

настройте CVS!

MyHomePage - http://surgutnet.ru


"Помогите со скриптом!!!"
Отправлено Gennadi , 15-Сен-05 02:40 
>>>Значит так есть папка с файлами в которую всё льют что-то.
>>>Надо зделать такой скрипт который бы смотрел что там нового в этой
>>>папке которые файлы менялись и копировал эти файлы в другую дерикторию.
>>>
>>
>>
>>man find - очень полезная штука, особенно в твоем случае.
>
>настройте CVS!
>
>MyHomePage - http://surgutnet.ru

Сначала сделаем четыре папки:

/vtrak/raid_a    - папка с файлами в которую всё льют что-то.( можно и любую другую ... например: /srv/www/htdocs  или ещё как...)
/vtrak/raid_b    - копия папки "/vtrak/raid_a" ( можно и любую другую ...)
/vtrak/raid_c    - папка, в которой будем смотреть что там нового в папке "/vtrak/raid_a" какие файлы менялись (по чётным неделям).
/vtrak/raid_d    - папка, в которой будем смотреть что там нового в папке "/vtrak/raid_a" какие файлы менялись (по нечётным неделям).


Это запишем в /etc/crontab

10 0 * * 7     root    rsync -au /vtrak/raid_a /vtrak/raid_b
0 22 * * 1-6   root    /usr/local/bin/backup.sh


(Первая запись)
Это означает что каждое воскресенье будут синхронизироваться папки "/vtrak/raid_a" и "/vtrak/raid_b".

(Bторая запись)
В остальные дни недели - файлы которые менялись, будут копироваться в дЕрИктории "/vtrak/raid_с" или "/vtrak/raid_в".


Этот скрипт "backup.sh" поместим в директорию "/usr/local/bin"

===========================   backup.sh    =========================================================================
#/bin/bash
RAID_A="/vtrak/raid_a/"  # или ещё как... /srv/www/htdocs/"
RAID_B="/vtrak/raid_b/"
RAID_C="/vtrak/raid_c/"
RAID_D="/vtrak/raid_d/"
WOCHE=`date +%W`
MAIL="admin@my_domain.ru"
ORG="My_Organisation"
##############################################################################
cd /usr/local/bin
echo "Старт Backup-Системы в `date`" > mail.txt
echo "-------------------------------------------------------------------------------" >> mail.txt
echo "" >> mail.txt
echo "" >> mail.txt
echo "    .'  \`." >> mail.txt
echo '    |a_a  |' >> mail.txt
echo "    \<_)__/        Этот E-Mail автоматически сгенерирован " >> mail.txt
echo "    /(   )\        Backup-Системой предприятия $ORG." >> mail.txt
echo "   /\\\`> < /\ " >> mail.txt
echo "   \\_|=='|_/" >> mail.txt
echo "--------------------------------------------------------------------------------" >> mail.txt
echo "`diff -r $RAID_A $RAID_B`" > list_tmp
cat list_tmp | grep 'Only in' > file_tmp
#cat list_tmp |sed 's/^>/d' > file_tmp
cat file_tmp | sed 's/^Only\ in\ //g' > new_file
    while [ ! -z "`head -n1 new_file`" ]
    do
    NEW_FILE="`head -n1 new_file | cut -d ":" -f 2 | sed -e 's/^\ //g'`"
        if [ `expr $WOCHE % 2` = 1 ]
        then
        RAID="/vtrak/raid_c"
        echo "$RAID_A" > raid_tmp
        sed -e 's/\//\\\//g' raid_tmp > new_tmp | cp new_tmp raid_tmp
        RAID_NEW=`cat raid_tmp`
        NEW_PATH=`head -n1 new_file | awk -F ":" ' {print $1}'| sed -e "s/$RAID_NEW//g"`
        mkdir -p $RAID_C"$NEW_PATH"
        cp -av $RAID_A"$NEW_PATH/$NEW_FILE" $RAID_C"$NEW_PATH" >> control.txt
        else
        RAID="/vtrak/raid_d"
        NEW_PATH=`head -n1 new_file | awk -F ":" ' {print $1}'| sed -e "s/$RAID_NEW//g"`
        mkdir -p $RAID_D"$NEW_PATH"
        cp -av $RAID_A"$NEW_PATH/$NEW_FILE" $RAID_D"$NEW_PATH" >> control.txt
        fi    
    sed -e "1d" new_file > file_tmp && cp file_tmp new_file
    done
echo "

Следующие файлы были сегодня изменены ( см. файл : control.txt) и скопированы в директорию $RAID.

-----------------------------------------------------------------------------------------

Заполнение разделов на дисках:

`df -h`
-----------------------------------------------------------------------------------------
Backup закончен `date`" >> mail.txt
echo "`cat mail.txt`" | mailx -s "Backup предприятия $ORG `date`." -a control.txt $MAIL
rm -f *tmp new* *.txt
###############################################################################
==========================================================================================================


Может это то что Вам надо?...



"Помогите со скриптом!!!"
Отправлено Gennadi , 15-Сен-05 04:12 

else
RAID="/vtrak/raid_d"
* echo "$RAID_A" > raid_tmp
* sed -e 's/\//\\\//g' raid_tmp > new_tmp | cp new_tmp raid_tmp
* RAID_NEW=`cat raid_tmp`
NEW_PATH=`head -n1 new_file | awk -F ":" ' {print $1}'| sed -e "s/$RAID_NEW//g"`
mkdir -p $RAID_D"$NEW_PATH"
cp -av $RAID_A"$NEW_PATH/$NEW_FILE" $RAID_D"$NEW_PATH" >> control.txt
fi

* - помеченные звёздочкоё (*) три строки при коприроиании выпали.... надо добавить в скрипт!


"Помогите со скриптом!!!"
Отправлено Igoryan , 15-Сен-05 11:15 
СПС!!!!!!!!!!!!!!!!!!!!!!!!!!!