- Регистрация
- 09.10.2015
- Сообщения
- 3 916
- Благодарностей
- 3 867
- Баллы
- 113
Сисадмины делятся на 2 типа: тех, кто не делает бэкапы и тех, кто уже делает. © Народная мудрость
У меня уже были такие ситуации, что винда неожиданно ловила BSOD и все списки/таблицы что были в этот момент открыты на запись - превращались в пустоту (заполнялись NUL символами). После таких ситуаций очень неприятно разгребать полученные проблемы и искать где были куплены те или иные аккаунты (в лучшем случае, чаще же самореги уходили в небытие навсегда и без возможности найти эти аккаунты). Поэтому я стал периодически руками создавать архив со всеми проектами и файлами (списками и таблицами), которые лежат по соседству. Так как я отлично понимаю, что рано или поздно от постоянной нагрузки (чтение/запись) - жесткий диск умрет, то я складывал эти архивы в облако (Яндекс.Диск). Но во всей этой ситуации больше всего меня смущало то, что это приходилось делать руками и я часто забывал об этой процедуре.
Изначально, я хотел поставить какую-нибудь программу для бекапа и забыть об этом всём, но погуглив и почитав описания к 100-500МБ монстрам я огорчился и понял, что лучше сделать свое небольшое решение в котором я уверен, чем нагружать систему лишними и слишком неудобными инструментами.
Что именно мне не понравилось в большинстве программ для бекапа:
- Данные бекапятся "как есть", без возможности заворачивания в архив.
- Много где бекап идет с помощью "diff-ов", а зачем мне это, если всё равно зенно-шаблоны - состоят из нечитаемых бинарных данных?
- Бекап запускается точно также руками, нет встроенных планировщиков задач или их демоны слишком тяжелые и нет уверенности, что когда-нибудь они "не отвалятся".
- Нет возможности удалять старые архивы (самоочистка).
- Бекап только за день, но нет за месяц.
А теперь мы подходим к самому интересному: "чем мы будем собирать всё добро?"
Ответ прост WinRAR (.rar формат). Почему именно он:
- Есть возможность добавлять информацию для восстановления.
- Есть тестирование архива на ошибки после создания.
- Установлен на большинстве windows-машин.
- Возможность создания архива на trial-копии и даже на незарегистрированной и истекшей по времени копии.
- Есть возможность шифровать архив по паролю.
Данный бекапер у меня работает по схеме: запускаем каждый день ночью, но когда количество архивов превысит 14 штук (2 недели), то удаляем все старые архивы до этой даты (текущий день минус 14 дней). Также, запущен второй вариант: он делает архивы ночью 1го числа каждого месяца, чтобы иметь и старые версии, но хранятся месячные копии только за последние 12 месяцев (старые автоматически удаляются). Все архивы складываются в Яндекс.Диск (вот тут я писал об акции, которую проводит Я.Диск, где можно "на шару" получить +32ГБ, или для особо опытных + неограниченное количество места - бесплатно).
В приложенных файлах архив с 2 бекаперами:
- zenno_backup_daily.bat — для запуска каждый день;
- zenno_backup_monthly.bat — для запуска в начале каждого месяца.
Рассмотрим настройки этих мелких скриптов.
Сразу же скажу, что если вы пересохраните их в другой кодировке или будете использовать внутри русскоязычные символы - скорее всего у вас они не заработают. Я поковырялся-поковырялся, чтобы это исправить, но так и не нашел 100% решения этой проблемы, поэтому просто учтите заранее: никаких путей с русскими буквами, менять файлы нужно через Notepad++.
В идеале: нужно настроить всего 2 переменные в обоих .bat файлах. Это:
Код:
set zenno_dir=C:\zenno
Код:
set backup_dir=C:\YandexDisk\zenno\daily\
Но если у вас WinRAR установлен по какому-то не стандартному пути, то ещё нужно будет изменить путь к rar.exe (именно к нему, а НЕ winrar.exe):
Код:
set rar_path=
При создании бекапа также используются определенные функции из самого винрар, они прописаны в переменной rar_argum и вот их описание:
- -m3 — Метод сжатия (0-без сжатия...3-обычный...5-максимальный)
- -dh — Открывать совместно используемые файлы (без этого все файлы, что открыты в этот момент – не забекапятся!)
- -r — Включить в обработку подкаталоги
- -y — Подразумевать ответ 'Да' на все запросы
- -rr — Добавить данные для восстановления
- -t — Протестировать файлы после архивации
- -mt1 — Количество потоков (во сколько потоков процессора будет идти создание архива. Так как скорее всего у вас будет в это время пахать зенка – не советую повышать количество потоков, чтобы не мешать ей)
- -ag_yyyy_mm_dd_hh_mm — Добавить к имени архива текущие дату и время (в формате 2017_05_11_12_00 – именно с таким видом в стандартном explorer'e файлы будут идти в правильном порядке)
- -inul — Не показывать никаких сообщений (если удалите вот этот аргумент, то сможете разобраться почему архив не создается, но по факту когда уже всё работает – не зачем выводить все данные процесса создания архива в консоль)
Удаление старых архивов происходит с помощью утилиты forfiles.exe - в windows server 2012R2 она у меня уже была, но возможно, что у вас её нет. В этом случае советую попробовать поставить Windows Server 2003 Resource Kit Tools, хоть там её и нет в списке, но все источники дают ссылку именно туда. Если кто-то найдет где взять только эту утилиту без кучи хлама, чтобы она запускалась под всеми системами - то с удовольствием поменяю тут ссылку.
Естественно, первоначально стоит попробовать создать бекап руками (запустив оба этих .bat файла) и проверив, что бекапы создаются и "всё окей".
И на последок: осталась самая интересная часть - "как это добро запускать автоматически?"
Так как у меня стоит windows server 2012R2, то я покажу на его примере. В принципе, скорее всего в других версиях винды - это будет аналогично.
- Стандартный планировщик заданий для Windows находится в: Панель управления -> Администрирование -> Планировщик заданий (или можно запустить по пути: C:\Windows\system32\taskschd.msc )
- Далее справа выбираем "Создать задачу":
- Прописываем имя:
- Добавляем триггер запуска:
- Пример для ежедневного запуска:
- Пример для ежемесячного запуска (предварительно нужно создать второе задание!!!), но указываем другое время, чтобы не запускать одновременно 2 процесса архивирования
- Пример для ежедневного запуска:
- Добавляем действие
Для ежемесячного запуска путь будет другой, не забудьте.
- Добавляем условия:
- Добавляем параметры:
- Сохраняем задачу
Всё, теперь можно жить спокойно:
Немного ответов на вопросы, которые могут сразу же задать:
- "Почему стоит складывать бекапы в облачное хранилище?" - потому что в случае выхода из строя вашего жесткого диска - они там хотя бы останутся.
- "Почему запуск через планировщик виндовс, а не через зенку?" - потому что мне идеологически не нравится идея запускать бекап через программу, данные которой и бекапим. Ну и всё таки виндовый планировщик то надежнее.
- "Как восстанавливать данные?" - просто распаковать архив обратно, но естественно проверив всё руками. К сожалению, тут не предусмотрено как проверять измененные файлы и восстанавливать только то, что "ушло в небытие", но это гораздо усложнит данную заметку и вообще выйдет за рамки статьи.
- "Как быть в случае того, если в то место на жестком диске, куда запишется архив - попадут нулевые биты и архив будет испорчен?" - если повезет, то поможет информация для восстановления, которую мы добавляем во время создания архива. Если нет, то это будет грустно, но подумайте - каков шанс получить именно такой косяк? Скорее уж просто жесткий диск целиком умрет.
И в виде домашнего задания:
- Подумайте самостоятельно как можно бекапить купленные проекты (ботов) и данные к ним, что они создают/используют.
- Подумайте и решите как делать резервные копии БД (mysql, postgresql, mssql), если вы используете их.
Не претендую на звание "первооткрывателя" или какие-либо лавры, но надеюсь, что данная статья поможет вам сэкономить кучу нервов в случае отказа оборудования. Поэтому советую вам прямо сейчас задуматься о том, что стоит делать бекапы, даже если у вас никогда не возникало проблем
А как вы бекапитесь?
PS: данная статья опубликована специально во время конкурса, но не в рамках/разделе конкурса, т.к. идея пришла спонтанно, да и что-то активность в конкурсном разделе "нулевая", поэтому я посчитал, что стоит так приободрить тех, кто заявился и будет публиковаться
UPD:
1. Бекап MySQL баз данных: https://zennolab.com/discussion/threads/37357/#post-286012 и его обновленнная версия: https://zennolab.com/discussion/threads/37357/post-339621
2. Бэкап настроек ZennoPoster (плагины, настройки и тд): https://zennolab.com/discussion/threads/37357/post-419737
- Категория
- Полезно
Вложения
-
2,3 КБ Просмотры: 567
Для запуска проектов требуется программа ZennoPoster.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...
Для того чтобы запустить шаблон, откройте программу ZennoPoster. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.
Последнее редактирование: