Показаны сообщения с ярлыком бэкап. Показать все сообщения
Показаны сообщения с ярлыком бэкап. Показать все сообщения

7 мая 2017 г.

Бэкап Linux сервера в облачные хранилища



Всем привет.

Пишу редко, да метко 8).

Решил написать тут о совершенно замечательной софтине для бэкапа данных на внешних облачных хранилищах (со свежей версией и не только на облачных).

Как обычно - это заметки для себя, при какой-нибудь переустановке удобно сюда заглянуть.

Что имеем. Небольшой домашний серверок на Fedora и необходимость бэкапить незатейливое количество файлов в виде фоток, документов и т. п. Есть желание хранить копию данных в облачном хранилище - у меня это Google Drive с объёмом примерно на 200 гигов.

В качестве решения для бэкапа используем - Rclone

Установка очень простая и описана вот на этой странице

https://rclone.org/install/

Просто забиваем в терминал команду за командой копируя и всё.

Для Fedora встала как надо, никаких особых манипуляций делать не пришлось
После установки набираем в терминале

rclone config

И попадаем в нехитрый интерфейс настройки.

Здесь хочу также сослаться на страницу настройки конкретного хранилища,
вот надо отдать должное разработчикам, они всё достаточно хорошо документировали.

https://rclone.org/drive/

Итак что здесь:

Жмём в самом начале N - New remote

И затем выбираем из списка своё хранилище

Далее, для не очень знающих английский

Google Application Client Id - leave blank normally. client_id> ТУТ ТУПО ЖМЕМ ЭНТЕР (оставляем дефолтные настройки) Google Application Client Secret - leave blank normally. client_secret> ТУТ ТОЖЕ ЖМЕМ ЭНТЕР (оставляем дефолтные настройки)
Remote config

Вот здесь ниже: вопрос о том, настраиваете ли вы конфигурации на сервере у которого
есть браузер или нет. У меня сервер без графической оболочки (GUI) поэтому я выбираю
N

Use auto config? * Say Y if not sure * Say N if you are working on a remote or headless machine or Y didn't work

При выборе N вам выведут в терминал строчку URL ссылки, которую вы копируете куда-нибудь (я работаю в терминале через SSH поэтому просто копирую к себе в браузер на
личном компе и всё), по ссылке открывается стандартный диалог Google в которой даю
приложению права (доступы) к диску (звучит страшно на самом деле все просто, пробуйте).
Взамен Google даёт мне токен, который я копирую назад в терминал, жму энтер и на этом конфигурация закончена.

(если кто тормознет на этом этапе дайте знать я еще раз пройду процесс и заскриную все что надо).

Итого что имеем:

1) Настроенную конфигурацию на сервере с доступом через API Гугл диска.

Далее, как все это чудо работает.

Во-первых синхронизация работает только в одну сторону.

Команды все расписаны на сайте, я практически использую только одну сейчас
(в других надобности нет, но изучить стоит)

Команда простая, запускаю я её от root

rclone sync --drive-use-trash --log-level DEBUG --log-file /home/1/log.txt /media/sdb1/myfiles togoogle:backup

Расшифрую:

--drive-use-trash (при удалении файла перемещать его в облачном хранилище в корзину, полезно)
--log-level DEBUG вести журнал событий (лог) в данном случае я сегодня подключал
новое хранилище флажок DEBUG означает что выводятся абсолютно все события, это удобно,
уровень логгирования можно регулировать, уровни подробностей вот такие есть

DEBUG|INFO|NOTICE|ERROR (вот тут все команды https://rclone.org/commands/rclone_config/)

--log-file /home/1/log.txt - ну тут всё просто в какой файл писать лог

/media/sdb1/myfiles - путь папки с файлами

togoogle:backup - вот здесь n - это название той конфигурации, которую я задал в самом начале, а backup - это папка
на облачном сервисе в которую и делается бэкап

В принципе, это всё. Я запускаю по крону - все это синхронизируется раз в сутки и всё.
Если файл удалён - то он в облачном хранилище перемещается в корзину (удобно).

Также, если кто не знает (а почему-то об этом мало кто знает) в Гугл диске, например, есть версионность, файлик можно и назад откатить с прошлой версии.

Я использую Rclone несколько месяцев - всё работает с гугловским хранилищем просто замечательно.

Бэкапить можно также сейчас и локально и на другие хранилища, вот полный список

  • Google Drive
  • Amazon S3
  • Openstack Swift / Rackspace cloud files / Memset Memstore
  • Dropbox
  • Google Cloud Storage
  • Amazon Drive
  • Microsoft OneDrive (пробовал - работает ОК, но синхронизирует медленно)
  • Hubic (пробовал - работает ОК, но тормоза из РФ, читайте ниже, но если захотите попробовать вот мой промокод в качестве спасибо от вас FXPEMN)
  • Backblaze B2
  • Yandex Disk (пробовал - работает ОК, но.. с нюансами см ниже)
  • SFTP
  • The local filesystem
 
Чтобы 2 раза не вставать, отдельно напишу про облачные хранилища.

Самый дешевый в РФ сейчас - это Яндекс, 1 TB за 200 рублей в месяц (а при покупке на год за 166 рублей в пересчете на месяц) - это просто подарок какой-то!. На втором месте - это майкрософтовский пакет офис 365 (не морщитесь, это реально так) за сумму в районе 350 с копейками рублей вы получаете 5 лицензий на офис плюс на каждую из 5 лицензий - 1 ТБ хранилище (то есть итого 5 аккаунтов по 1 тб в каждом). Обратная картинка этой халявы - хранилище очень тормозное, можете подключить халявный план и попробовать. Опять же, если вам некуда торопиться, то вполне ОК и если вам надо, например, 2 ТБ их можно разбить на отдельные конфигурации и бэкапить в 2 аккаунта.

У Гугла 1 ТБ стоит сейчас 699 рублей, я считаю - что сейчас это дорого.

По Яндексу вот какой расклад - я тестировал, работает неплохо, но почему-то не всегда устойчиво (скорость загрузки плавала), пробуйте перед покупкой на халявном хранилище. Провайдеры у всех разные, да и тестировал я несколько месяцев назад.

 Очень интересным предложением выглядит https://hubic.com/ - где 10 ТБ можно приобрести за 5 евро в месяц, но скорость мне не понравилась, опять же это всё субъективно. У всех разные провайдеры, да и времени уже прилично прошло. Пробуйте с халявным 25 гиговым тарифом, кстати, вот мой реферальный код,  FXPEMN - при регистрации его вбейте и первым 5-и зарегистрировавшимся должны дать +5 гигов нахаляву. Жаль что у них нет 1 ТБ хранилищ.

Аналогично, стоит попробовать Amazon Drive - тут за 60 баксов в год дают типа безлимит. Не пробовал, но стоит.

Вот как-то так.

Теперь еще раз для маньяков по шифрованию и безопасности личных данных - вот тут такая опция есть
https://rclone.org/crypt/

я не пробовал, пока руки не дошли, попробуйте и отпишитесь в каментах 8).

Также для целей бэкапа в облачные хранилища можно попробовать вот такой опенсорсный софт https://www.duplicati.com/ я его пробовал, в версии для Windows, но еще в старой версии, тогда все работало достаточно неплохо. В версии 2-x пока не пробовал.

Всем хорошего бэкапа, котаны!). Делайте бэкапы почаще - это спасает и деньги и ваши нервные клетки!)

1 июня 2012 г.

Настройка Rsync для бэкапа данных на локальные носители

Как известно, люди делятся на тех кто делает бэкапы и на тех кто их точно теперь (после потери данных :-D будет делать.

Ниже описываю работающую схему бэкапа на сервере при котором копия данных (бэкап) сохраняется на соседний жёсткий диск, который стоит на этом же самом сервере. То есть создаётся локальный бэкап.

Для бэкапа используем утилитку Rsync (http://ru.wikipedia.org/wiki/Rsync). Огромное её преимущество в том, что она очень быстро синхронизирует данные благодаря тому, что каждый раз копирует не все файлы с источника, а лишь те который изменились (и то у файла передаёт лишь изменившийся кусок). Проще говоря если у вас есть, например, терабайт файлов и каждый день меняется, например, из них 2-3 гигабайта, то именно вот эти фрагменты файлов из 2-3 гигабайтов и будут скопированы в резервную копию. Это реально в сотни раз ускоряет процесс создания резервной копии, так как не надо каждый раз гонять их с диска на диск.

Rsync по умолчанию установлен в  Ubuntu, всё что нам надо это задать 1 команду на выполнения процедуры копирования.

Представим, что исходные данные хранятся у вас в папке /home/user/files, а диск, на который вы хотите копировать их подключен в /media/backup.

Собственно всё делается одной командой приведу её в том виде, как она работает у меня.

rsync -r -t -v -z -h  --progress  --delete  /home/user/files   /media/backup

Расшифрую:

-r  - рекурсивный режим, копируются все подкаталоги и все файлы
-t  - обновлять время изменения файла в копии данных
-v - вывод сообщений в терминал
-z  - дополнительное сжатие данных при их передачи, актуально скорее когда бэкап делается удалённо на другой компьютер (рассмотрим в следующий раз)
-h - выдаёт статистику в удобном виде
--progress - показывает скорость передачи данных и сколько процентов осталось, удобно
--delete -удалять из копии (бэкапа) те файлы, которых нет на стороне источника данных

Команду можно запустить через терминал вручную, можно добавить в крон (как у меня). Возможности Rsync достаточно большие полный man есть на официальном сайте http://rsync.samba.org/documentation.html либо можно посмотреть с переводом вот здесь http://www.opennet.ru/man.shtml?topic=rsync&category=1&russian=0

Через Rsync, например, достаточно удобно и безопасно делать регулярные удалённые копии бэкапа, например, через SSH. Напишу об этом один из следующих постов.

На неделе отдельным постом дополню тему локального бэкапа и настройки Rsync.

26 мая 2012 г.

Отправка логов по почте через ssmtp и mpack

Собственно, после "небольшого" перерыва (с временем свободным всё не важно) пишу очередную памятку "для себя". Если кому и пригодится - отлично.

Короче, встала необходимость регулярно просматривать логи бэкапа на удаленном сервере, копированием там осуществляется регулярно через Rsync. Дабы держать руку на пульсе и периодически поглядывать логи сделал небольшую примочку на сервере - возможность отправки логов бэкапа прямо ко мне на электронную почту. В этом посте рассматривается реализация этого процесса через настройку пакета ssmtp и mpack.

До конца я это еще всё не тестил, но вроде пока все приходит нормально.

Итак, что надо.

1). Регистрируем себе почтовый ящик с которого (через который) будут приходить уведомления. Я выбрал яндекс и все настройки ниже справедливы для него.

2). Ставим замечательный пакет ssmtp, который и занимается отправкой сообщения с локального моего сервера на яндексовский шлюз.

3). Ставим утилиту mpack.


Всё находится в стандартных убунтовских репозиториях.

Дальше идём в /etc/ssmtp

и видим там два файла, их надо немножко откорректировать

Обратите внимание, мой почтовый ящик от которого будет приходить письмо называется backup@ваш_домен_здесь.ру (у меня доменная почта, поэтому домен свой, если вы заводите обычный ящик - естественно домен будет yandex).

Вот пример настройки ssmtp.conf


root=backup
mailhub=smtp.yandex.ru:465
UseTLS=YES
AuthUser=backup@ваш_домен_здесь.ru
AuthPass=ваш_пароль
FromLineOverride=Yes
rewriteDomain=ваш_домен_здесь.ru
hostname=backup

Содержимое второго файла revaliases:

user:backup@ваш_домен_здесь.ru:smtp.yandex.ru:465

Вот тут где я выделил user - надо подставить имя пользователя на сервере от которого будет запуск команды. Внимание, на точность сего конфига не претендую, но методом перебора я сделал конфиг именно таким, так как иначе яндекс ни в какую не хотел от меня получать почту.

Проверяем, работает ли почта, идем в терминал и задаём простую команду на отправку письма на ящик ящик@какой_нибудь_домен.ru


echo "" | ssmtp -v -s Hello ящик@какой_нибудь_домен.ru


Смотрим логи, если всё окей письмо отправится и придет в тот ящик который вы указали.
Если что-то не так смотрите лог в терминале там все будет написано.

Как же отправить теперь лог сервера?

Всё просто, одной командой, в примере ниже, лог лежит по условному пути в файле log.txt  /home/mylog/log.txt

Команда такая:

mpack -s "Лог бэкапа" /home/mylog/log.txt ящик@какой_нибудь_домен.ru

Лог придёт прямо в тексте письма.

Работает это так у меня сейчас.

Срабатывает по крону скрипт который сначала делает бэкап через Rsync, потом после него отправляет готовый лог. Всего две команды в скрипте.

Про локальный и удалённый бэкап через Rsync напишу потом).