понедельник, 30 декабря 2013 г.

Бэкап системы в "облако".

Небольшой пост о скрипте, который создает бекап системы и скидывает в яндекс диск. Да, знаю, что подобных мануалов куча. Но мне не хочется потом искать в интернете мануал. А тут свой, под рукой всегда =).

Для начала устанавливаем сам яндекс диск. Ничего сложного. Все подробно описано по ссылке http://help.yandex.ru/disk/cli-clients.xml

Теперь скрипт.
 #!/bin/sh  
 back=backup-`date '+%d-%B-%Y'`  
 yadisk=/media/yandex.disk/backup  
 cd /tmp  
 tar -cvpf ./fullbackup.tar --exclude=/proc --exclude=/dev --exclude=/media --exclude=/mnt --exclude=/proc --exclude=/sys --exclude=/temp --exclude=/tmp --exclude=/usr/src --exclude=/var/spool/squidcache /  
 cd $yadisk  
 7z a $back.7z -mx3 /tmp/fullbackup.tar -v200M  
 for i in `find * | grep -v "$back"`; do rm $i; done  
 rm -f /tmp/fullbackup.tar  


Где:

/media/yandex.disk/backup — каталог примонтированого яндекс диска.

backup-`date '+%d-%B-%Y'` — шаблон имени нашего бэкапа.

--exclude — каталоги, которые исключаем из архивирования. 

-mx3 — степень сжатия. Можно поставить mx7, уровень сжатия высокий, но и выполняться будет дольше. Мне достаточно и 3 уровня.

-v200M — разделяем на архивы по 200Mb (мне так удобней)

for i in `find * | grep -v "$back"`; do echo $i; done — удаляет предыдущий бэкап (чтоб не занимало место, на яндекс диск не так много и места, а каждый бэкап у меня занимает по 3 Gb =) ). Кому не нужно просто удаляем строку.

Не забывает делать его исполняемым. 
Сперва бэкапим все tar'ом (чтоб сохранились права доступа файлов), а потом сжимаем и делим все 7z. Все это закинул в крон, чтоб в раз в неделю запускался.

2 комментария:

  1. Подобный бэкап недавно настроил после смерти винта ноутбука.

    ОтветитьУдалить
  2. Паролить архив с длинным ключем не забывайте.

    ОтветитьУдалить