Простой бэкап данных

Обновлено: 26 июня 2009

В сети, журналах на блогах и прочих злачных местах можно найти кучу информацию о сложных программных комплексах по резервированию данных и сохранению и восстановлению в случае необходимости. Для домашнего пользования так же можно найти с десяток GUI-программ для “домашнего пользования” Все это круто, но скажем так, что разворачивать на домашней машине профессиональную систему нет смысла, а использовать GUI-программу это как-то по виндоваму. Зачем тогда спрашивается Linux, тут и Windows сгодиться. Раньше, когда я работал на PC бэкап данных мне был не к чему, так как я всегда мог снять винт, подключить к другой машине и будь здоров. Сейчас когда я использую дома только ноутбуки такой вариант не подходит. С другой стороны у меня появились данные потеря которых меня бы очень-очень сильно расстроила.

BackUp

В таком случае, именно для владельцев ноутбуков есть два вариант (имеется ввиду автоматизированных, не ручных), либо сливать все на другой комп в сети, либо купить внешний жесткий диск или высокоемкостную флешку и сливать все туда. Для себя я выбрал вариант с внешним жестким диском. По сети не получиться, так как остальные тачки в сети тоже ноутбуки. В первое же время использовал флеш накопитель.

Бэкап чего именно выполнять?

Вот этот вопрос уже интересный, многие ошибочно думают, что есть большая необходимость делать резервные копии директорий /boot или /var . Но в большинтсве случаев в этом есть необходимость только на серверах, минута простоя которых стоит тысячи долларов. А дома, если по каким-то причинам откажет система я всегда могу загрузиться с флешки и восстановить ее, на крайний случай просто переустановить, это занимает 30 минут времени. Другое дело если в силу каких-либо обстоятельств (вирусной атаки, атаки из вне или еще чего) пропадет полугодовой отчет, презентации, бухгалтерские документы или профили Thunderbird, Firefox и т.д. Тем более, что директории /boot или /var защищены от вируса, а вот домашняя нет, ведь не все ваши файлы хранятся с правами 000 и группой рута.

Метод первый – скрипт

Именно такой метод я избрал в своем случае, я четко определился, какие директории являются важными для меня, когда я хочу что-бы они бэкапились, и куда (внешний носитель)
Например меня интересуют директории:

/home/user/documents/
/home/user/private/
/home/user/documents/
/home/user/private/

Мой ноут работает 24х7х12 т.е. не выключается никогда, а идеальное время для бэкапа – ночь, когда за ним никто не работает, что бы не мешал процесс архивирования.

Архивация происходит на внешний носитель. Это может быть карта флеш памяти или внешний жесткий диск. Так же если видоизменить скрипт, удаленный компьютер.

Тело скрипта:

#!/bin/bash
 
cd /home/use/documents/
tar cjf `date '+%d-%m-%y'_1.tar.bz2` *
mv *.tar.bz2 /media/disk/
 
cd /home/use/private/
tar cjf `date '+%d-%m-%y'_2.tar.bz2` *
mv *.tar.bz2 /media/disk/
#!/bin/bash

cd /home/use/documents/
tar cjf `date '+%d-%m-%y'_1.tar.bz2` *
mv *.tar.bz2 /media/disk/

cd /home/use/private/
tar cjf `date '+%d-%m-%y'_2.tar.bz2` *
mv *.tar.bz2 /media/disk/

Сохраняем эти строки в файле archives.sh перемещаем файл в удобную для нас папку, например /home/user/archives/

Далее воспользуемся услугами crontab
становимся рутом:

su root
su root

Открываем конфигурационный файл кронтаба:

crontab -e
crontab -e

Появиться выбор удобных для вас редакторов. Для меня nano, жмем 3 и Enter.
Туда вписываем следующую строчку:

0 3 3,20 * * sh /home/user/archives/arhives.sh
0 3 3,20 * * sh /home/user/archives/arhives.sh

Формат файла представлен так:
————————————————————–
Минуты Часы День Месяц Год Команда
————————————————————–
Значения разделяются пробелом. Если значений два, через запятую.
Т.е. Каждый год, каждый месяц, третьего и двадцатого числа в 3.00 выполнить скрипт. Который в свою очередь выполнит бэкап. Теперь я знаю, что два раза в месяц у меня будет проходить архивация данных.
Так как самому файлу arhives.sh я присвоил права 444 (только чтение) и выполняется действие от рутовского кронтаба, файлы сохраняются с правами 444 т.е. вирус не сможет их достать, тем более они принадлежат группе root.

GUI-инструменты
Из доступных можно упомянуть Home User Backup, Simple Backup Config & Restore, File Backup Manager, Dup Backup Utility, все эти программы можно без труда найти в репозитарии.
В качестве примера я остановлюсь на Backup Config & Restore.
Установить эту программу можно командой:

aptitude install simplebackup
aptitude install simplebackup

После установки вы найдете ее в Система > Администрирование.
Эта простенькая программа в которой вы можете выбрать все те же опции что я указал в скрипте, но только с использованием графической оболочки. А именно, выбрать режим бэкапа (по дефолту, ручной, дилог) вкладка “General” , указать директории которые необходимо резервировать, вкладка “Enclude”, указать исключения, даже ввиде файлов, например не архивировать в указанных для архивирования папках mp3 и avi файлы, вкладка “Exclude” , выбрать папку назначения, вкладка “Destinition” , встроенная функция сохранять файлы через протоколы SSH и FTP , на вкладке “Time” вы можете указать когда производить бэкап и сохранять журнал с сессиями.
Выглядит она так.

Если кому-то сильно нужно, то все вышеперечисленные функции легко доступны по средствам скрипта, а добавив скрипт на исполнение в crontab о бэкапе вовсе можно забыть, за вас его будет выполнять ваша система. И просто и удобно и безопасно.

Простой способ удаленного бэкапа.
В том случае, если папка с документами которую вам необходимо бэкапить, находиться на другом компьютере, вы можете делать бэкап с помощью rsync по средствам SSH-доступа к уадленному компьютеру, т.е. на удаленной машине должен быть установлен SSH-сервер, как это сделать я писал здесь

Сам бэкап выполняется командой

rsync -vare ssh yourlogin@192.168.0.2:/home/username/importantfiles/* /home/username/backup/
rsync -vare ssh [email protected]:/home/username/importantfiles/* /home/username/backup/

Если кто-то может предложить альтернативные варианты скрипта, милости прошу, запостим.

P.S.:Аналогичные действия можно сделать с помощью технологии SCP. Это очень приемлемо, так как это один из наиболее защищенных сетевых протоколов, к тому же прост в использовании. Но об этом в следующих статьях.