Итак у нас есть 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сылка
⏏