Итак у нас есть FreeBSD + жизненоважные директории, нужно их забекапить... бекап будет делаться обычным архивированием файлов.
Создаем файл скрипта, пример: backup_script.sh
делаем его исполняемым: chmod a+x backup_script.sh
Далее приведен листинг скрипта:
#!/bin/sh #дата бекапа, далее будет подставляться в имя директории бекапа $date date=`date "+%Y_%m_%d"`; echo "-=BackUp script starting [$date]=-"; #создаем директории для резервирования копий mkdir /data/Files/backup/sys_backup/$date sync #теперь собираем tar-архив и сжимаем его gzip'ом, выбрав при этом 9 уровень компрессии tar cvf - /home | gzip -9c > /data/Files/backup/sys_backup/$date/backup_home.tar.gz sync tar cvf - /etc | gzip -9c > /data/Files/backup/sys_backup/$date/backup_etc.tar.gz sync tar cvf - /usr/local/etc | gzip -9c > /data/Files/backup/sys_backup/$date/backup_usr_local_etc.tar.gz sync tar cvf - /usr/local/www | gzip -9c > /data/Files/backup/sys_backup/$date/backup_usr_local_www.tar.gz sync tar cvf - /var | gzip -9c > /data/Files/backup/sys_backup/$date/backup_var.tar.gz sync echo "-=BackUp script stopping [$date]=-"; exit 0
Вот собственно и все, что касается линукса, то наверное все так же, кроме путей до директорий.
Этот скрипт также можно расширить, например для бекапа баз данных, например mysql или же для дампа БД 1C
Данный скрипт будет актуален для домашнего использования, в остальных случаях нужно использовать dump/restore
Может быть есть какие то замечания или дополнения?
P.S скрипт, безотказно работает на моей фре уже очень долго
Скрипт хорош.
Я думаю стоит в него включить бекап mysql баз, так сказать образец, ибо у многих есть базы, а сохранность данных не обеспечена
- ответить
- cсылка
- цитировать
⏏Это будет как то так:
Для снятия дампа баз данных мы будет использовать mysqldump (mysqldump - a database backup program)
для бекапа я завел отдельного пользователя с такими правами:
т.е. этот пользователь может делать выборку баз данных и импорт/экспорт баз в файл, а так же может накладывать блокировку на чтение или запись (о блокировках в mysql можно почитать тут)
итак:
все
эти строки добавляем в предидущий скрипт, и наслождаемся...
- ответить
- cсылка
- цитировать
⏏полностью скрипт будет выглядеть так:
- ответить
- cсылка
- цитировать
⏏дохрена sync..
#!/bin/sh
#дата бекапа, далее будет подставляться в имя директории бекапа $date
date=`date "+%Y_%m_%d"`;
mysql='mysqldump -u backup -h localhost -ppasswd';
echo "-=BackUp script starting [$date]=-";
#создаем директории для резервирования копий
mkdir /data/Files/backup/sys_backup/$date
НАХРЕН УБРАТЬ!
sync
НАХРЕН УБРАТЬ!
#теперь собираем tar-архив и сжимаем его gzip'ом, выбрав при этом 9 уровень компрессии
tar cvf - /home | gzip -9c > /data/Files/backup/sys_backup/$date/backup_home.tar.gz
НАХРЕН УБРАТЬ!
sync
НАХРЕН УБРАТЬ!
tar cvf - /etc | gzip -9c > /data/Files/backup/sys_backup/$date/backup_etc.tar.gz
НАХРЕН УБРАТЬ!
sync
НАХРЕН УБРАТЬ!
tar cvf - /usr/local/etc | gzip -9c > /data/Files/backup/sys_backup/$date/backup_usr_local_etc.tar.gz
НАХРЕН УБРАТЬ!
sync
НАХРЕН УБРАТЬ!
tar cvf - /usr/local/www | gzip -9c > /data/Files/backup/sys_backup/$date/backup_usr_local_www.tar.gz
НАХРЕН УБРАТЬ!
sync
НАХРЕН УБРАТЬ!
tar cvf - /var | gzip -9c > /data/Files/backup/sys_backup/$date/backup_var.tar.gz
добавить!
sync&&sync&&sync
добавить!
echo "-=Mysql dumping start=-";
$mysql --all-databases | gzip -9c > /data/Files/backup/sys_backup/$date/mysql_all_dump.gz
добавить!
sync&&sync&&sync
добавить!
echo "-=mysql dumping stopping=-";
echo "-=BackUp script stopping [$date]=-";
exit 0
- ответить
- cсылка
- цитировать
⏏Ах, да, вот ещё...
#создаем директории для резервирования копий
mkdir /data/Files/backup/sys_backup/$date
НАДО ТАК
mkdir -p /data/Files/backup/sys_backup/$date
- ответить
- cсылка
- цитировать
⏏не прошло и года... =)
- ответить
- cсылка
- цитировать
⏏Хозяяяяиииииин!!!
А еще можно пути в качестве переменных или скрипту давать, или в начале самого скрипта задавать...
Также логирование действий скрипта не помешает...
Заменить переменные схожие с командами...типа $date заменить надо...
Желаю удачи, хозяин ^_^
- ответить
- cсылка
- цитировать
⏏xeen, хорошие идеи, может ты напишешь скрипт? а мы наберемся опыта =)
- ответить
- cсылка
- цитировать
⏏Логично, если я буду знать больше хозяина, я ему буду нужен....^_^
- ответить
- cсылка
- цитировать
⏏ой ты какой трусливый заяс серенький
- ответить
- cсылка
- цитировать
⏏cp <откуда> <куда>
вот это да!
- ответить
- cсылка
- цитировать
⏏Отправить комментарий