Задача:
Есть набор фалов, хранящихся на определенном компьютере, где эти файлы периодически редактируются специально обученным человеком в специальной программе.
И есть шара на файлообменном сервере, куда эти файлы должны копироваться после редактирования. Чтоб все остальные могли смотреть на результаты редактирования. Шара доступна для записи только тому, кто обновляет файлы, отсальные могут только читать. Т.е. каждый раз после того, как файлы менялись/обновлялись, нужно было вручную копировать их на сервер.
Необходимо было автоматизировать процесс заливания файлов после редактирования на доступную всем шару на сервере.
Решение:
Решение очень простое: Был создан .bat-файл, который нужно запускать после окончания редактирования. Данный скрипт подключает шару, как локальный диск “B:”, после чего на этот диск копируется вся необходимая информация и диск отключается. Также предусмотрена проверка на уже подключенный ранее диск. И на обработку исключенией при копировании(т.е. командой xcopy копируются только те файлы и директории которых нет в исключениях). Об успешной или не очень работе скрипта, запускающий его пользователь может судить по цвету фона в окне терминала: в случае каких-либо ошибок или их отсутствия, в окне терминала фон будет меняться на красный или зеленый соответственно.
Читать далее…
60.703701
28.771061
Введение
Есть необходимость хранить в определенном месте резервные копии архивов расшариваемых ресурсов. Архивы делаются регулярно ночью несколкьо раз в неделю по cron’у. Интересуют архивы только за последние, например, 3 месяца. Все, что старше, удаляется автоматически.
Реализация
Так как все архивы имеют вид типа *16.02.11.tgz, (т.е. дата создания архива имеется в его названии) весь смысл сводится к тому, чтобы выбирать из всей кучи архивов, только те файлы, даты которых в названии уже просрочены.
Вот пример того, как это делаю я:
#!/bin/sh
current_year=`date +%Y`
current_date=`date +%d.%m.%y`
expired_files_date=`date --date 'now -3 month' +%m.%y`
backup_dir=/etc/BACKUP/
echo today is: $current_date
echo expired date is: $expired_files_date
if [ $current_year \< 2011 ];then
echo Error. System date is wrong!
exit 1
fi
if [ -d $backup_dir ];then
cd $backup_dir
else
echo Error. Directory $backup_dir does not exists!
exit 1
fi
mask=*$expired_files_date.tgz
EXIST=0
for i in $mask
do
if [ "$i" != "$mask" ]
then
EXIST=$(($EXIST+1))
#echo $i
rm -fv $i
fi
done
echo "Total matching files found: $EXIST"
exit 0
60.703701
28.771061
Данный скрипт, запускаясь по крону, делает резервные копии выбранных директорий (добавляя к имени архива текущую дату).
Все резервные копии хранятся в расшаренной по samba директории, откуда позже их можно скачать на другую машину.
cd /home/PUBLIC
if [ -f del_expired_files.sh ];then
echo "" >> /etc/BACKUP/backup.log
date >> /etc/BACKUP/backup.log
echo "SEARCH EXPIRED FILES..."
. ./del_expired_files.sh
fi
################################################################
# BACKUP SCRIPT #
################################################################
#Zulu MAP:
echo "" >> /etc/BACKUP/backup.log
date >> /etc/BACKUP/backup.log
echo "ZULU MAP backup started..." >> /etc/BACKUP/backup.log
convmv -r -f koi8-r -t cp1251 --notest /home/PUBLIC/MAP/
tar czf /etc/BACKUP/MAP-`date +%d.%m.%y`.tgz /home/PUBLIC/MAP/
#AO:
echo "" >> /etc/BACKUP/backup.log
date>>/etc/BACKUP/backup.log
echo "AO DIR backup started..." >> /etc/BACKUP/backup.log
convmv -r -f koi8-r -t cp1251 --notest /home/PUBLIC/AO/
tar czf /etc/BACKUP/AO-`date +%d.%m.%y`.tgz /home/PUBLIC/AO/
#SHARE:
echo "" >> /etc/BACKUP/backup.log
date>>/etc/BACKUP/backup.log
echo "PUBLIC SHARE DIR backup started..." >> /etc/BACKUP/backup.log
convmv -r -f koi8-r -t cp1251 --notest /home/PUBLIC/SHARE/
tar czf /etc/BACKUP/SHARE-`date +%d.%m.%y`.tgz /home/PUBLIC/SHARE/
#MAPINFO:
echo "" >> /etc/BACKUP/backup.log
date>>/etc/BACKUP/backup.log
echo "MAPINFO DIR backup started..." >> /etc/BACKUP/backup.log
convmv -r -f koi8-r -t cp1251 --notest /home/PUBLIC/MAPINFO/
tar czf /etc/BACKUP/MAPINFO-`date +%d.%m.%y`.tgz /home/PUBLIC/MAPINFO/
#TO:
echo "" >> /etc/BACKUP/backup.log
date>>/etc/BACKUP/backup.log
echo "TO DIR backup started..." >> /etc/BACKUP/backup.log
convmv -r -f koi8-r -t cp1251 --notest /home/PUBLIC/TO/
tar czf /etc/BACKUP/TO-`date +%d.%m.%y`.tgz /home/PUBLIC/TO/
#ESTIMATES:
echo "" >> /etc/BACKUP/backup.log
date>>/etc/BACKUP/backup.log
echo "ESTIMATE DIR backup started..." >> /etc/BACKUP/backup.log
convmv -r -f koi8-r -t cp1251 --notest /home/PUBLIC/ESTIMATE/
tar czf /etc/BACKUP/ESTIMATE-`date +%d.%m.%y`.tgz /home/PUBLIC/ESTIMATE/
echo "-------------------------------------------------------" >> /etc/BACKUP/backup.log
df -h / >>/etc/BACKUP/backup.log
df -h /home >>/etc/BACKUP/backup.log
echo "-------------------------------------------------------" >> /etc/BACKUP/backup.log
echo "" >> /etc/BACKUP/backup.log
60.703701
28.771061
Свежие комментарии