Архив

Записи, помеченные «Резервное копирование»

Просто резервное копирование средствами .bat файла.

Задача:
Есть набор фалов, хранящихся на определенном компьютере, где эти файлы периодически редактируются специально обученным человеком в специальной программе.
И есть шара на файлообменном сервере, куда эти файлы должны копироваться после редактирования. Чтоб все остальные могли смотреть на результаты редактирования. Шара доступна для записи только тому, кто обновляет файлы, отсальные могут только читать. Т.е. каждый раз после того, как файлы менялись/обновлялись, нужно было вручную копировать их на сервер.
Необходимо было автоматизировать процесс заливания файлов после редактирования на доступную всем шару на сервере.
Решение:
Решение очень простое: Был создан .bat-файл, который нужно запускать после окончания редактирования. Данный скрипт подключает шару, как локальный диск “B:”, после чего на этот диск копируется вся необходимая информация и диск отключается. Также предусмотрена проверка на уже подключенный ранее диск. И на обработку исключенией при копировании(т.е. командой xcopy копируются только те файлы и директории которых нет в исключениях). Об успешной или не очень работе скрипта, запускающий его пользователь может судить по цвету фона в окне терминала: в случае каких-либо ошибок или их отсутствия, в окне терминала фон будет меняться на красный или зеленый соответственно.
Читать далее…

Удаление устаревших файлов резервных копий

Введение
Есть необходимость хранить в определенном месте резервные копии архивов расшариваемых ресурсов. Архивы делаются регулярно ночью несколкьо раз в неделю по 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

BackUp. Пример простейшего скрипта

Данный скрипт, запускаясь по крону, делает резервные копии выбранных директорий (добавляя к имени архива текущую дату).
Все резервные копии хранятся в расшаренной по 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

Follow

Get every new post delivered to your Inbox.

Join 28 other followers