Резервное копирование на яндекс диск windows

Универсальный редактор реквизитов объектов. Мультиобработчик Промо

Объекты: Справочник, Документ, ПланОбмена, ПВХ, Бизнес-процесс, Задача, ПланСчетов, ПВР.
Мультиобработчик:
-Проведение, перенумерация, движения, копирование, создание на основании, подчиненность, статистика, удаление документов.
-Регистрация изменений объекта(ов) в планах обмена.
-Установка/Отключение ГлавногоУзла РИБ.
-Поиск и восстановление «Битых» ссылок.
-Недопустимые символы XML/Дерево XML.
-Поиск и замена ссылок.
-Ошибки ИБ, в т.ч XML.
-Множество обработок справочников.
-GUID. Дата и время создания объектов ссылочного типа.
-Аналитика предопределенных, блокируемых реквизитов, ХранилищаЗначений.
-История изменений объекта.
-Активные пользователи.
-Подписки на события, функциональные опции.
Загрузка пользователей ИБ из Windows, Active Directory.
-Выгрузка/Загрузка пользователей ИБ в/из внешний XML-файл.
-Поддержка различных режимов модальности.
Файловый, Клиент-Серверный варианты.
Обычная и Управляемая формы.

1 стартмани

Добавляем в крон

Чтобы не запускать всю эту ботву руками, нужно использовать планировщик, мы ведь достаточно крутые парни, чтобы начать использовать крон? =)

10 2 * * * /path/to/scripts/backup.sh &>>/var/log/backup.log
10 4 * * * /path/to/scripts/ya.disk-send.sh &>>/var/log/backup.log
10 6 * * * /path/to/scripts/ya.disk-rotate.sh &>>/var/log/backup.log

На самом деле просто я говнарь, а так-то стоило все эти отдельные скрипты объединить в один, сделав их функциями, а в кроне вызывать только один жирный скрипт. Чтобы была более нативная последовательность, когда команды выстраиваются в цепочку, а то вдруг что-то где-то не отработает и всё сломается. Или может у тебя бэкап будет литься не 3 часа и ротация его пропустит, хотя это и не очень критично, тут больше критично, чтобы всё успело запаковаться, а то ничего не отправится)

Удаление неактивных и повторно запущенных пользователем сеансов — обработкой в фоне или внешней обработкой

На экране монитора при запуске конфигурации нередко приходится видеть обидное сообщение «Не обнаружено свободной лицензии». Особенно это актуально, когда у вас 100 лицензий и при этом работает порядка 90 пользователей. При этом, очень актуальна жесткая политика — «Один сеанс в одни руки». Для автоматизации ручной работы администратора 1С по удалению сеансов пользователей и предназначена данная обработка. Обработка может быть использована как внешняя, так и поставлена в дополнительные отчеты и обработки с установкой расписания запуска, в этом случае обработка будет выполняться как фоновое задание. Обработка предназначена для работы в клиент-серверных базах и тестировалась на платформе 8.3.14.1854. Обработка установленная на платформе не ниже 8.3.6, позволяет управлять сеансами конфигураций установленных на платформе 8.2

1 стартмани

Iperius Backup

Это еще одни мощный инструмент для создания резервных копий. Стоит отметить, что софт предлагает впечатляющий функционал для корпоративного сектора, например:

генерирование образов дисков;

бэкапы баз данных (Oracle, SQL, MySQL и других);

создание копий ESXi/HyperV и открытых файлов VSS;

запись резервных копий по FTP-протоколу;

поддержка шифрования AES 256 bit.

Небольшой нюанс — в бесплатной версии вы не сможете сделать образ диска, но Iperius Backup дает пробный период в 21 день. Стоимость лицензий начинается от 29 евро. Впрочем, ценник невысокий, учитывая инструментарий.

Создание резервной копии диска не представляет особых сложностей — достаточно выполнить несколько простых действий:

1. Выберите элемент для резервного копирования. Это может быть как папка, так и логические диски.

2. При бэкапе дисков вам предложат выбрать тип копии. Формат будет идентичный, но во втором случае (Образ Windows) вы сможете сделать восстановление стандартной утилитой, о которой мы говорили ранее.

3. После укажите, какой диск нужно зарезервировать и где будет сохранена копия. Заметьте, что меню будет отличаться в зависимости от предыдущего выбора.

5. Финальный шаг — кликнуть ПКМ по элементу в списке заданий и нажать «Запустить».

Восстановить образы VHD/VHDX можно через меню «Восстановление».

Iperius Backup — это функциональный инструмент для ручного и автоматизированного создания резервных копий с единственным недостатком: за функционал придется платить.

Пошаговый мастер настройки

Создание учетной записи Я ндекс

Если у вас уже есть учетная запись на любом из сервисов Yandex’а, то эта же учетная запись подойдет и для облака. Если у вас еще нет учетной записи, зайдите на сайт https://disk.yandex.ru, нажмите на кнопку “Завести Диск” и справа заполните небольшую форму регистрации.

Настройка задания для резервного копирования

Рассмотрим, как настроить утилиту Exiland Backup для автоматического сохранения резервных копий на ЯндексДиске. В качестве примера настроим утилиту таким образом, чтобы основные дубликаты информации она сохраняла на этот же ПК в папку D:\BACKUP и дополнительно дублировала на Yandex.

Скачайте демо-версию Professional на официальной странице, установите на ПК Windows и запустите ее. В главном окне, в левом углу, нажмите кнопку создания задания – на экране появится пошаговый мастер.

Шаг 5: Куда сохранять резервные копии

Как и договаривались выше, основным местом хранения резервных копий у нас будет локальная папка “D:\BACKUP” и дополнительно будем дублировать на Yandex.Disk.

Далее, добавляем второе место для хранения.

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

Нажимаем кнопку “Разрешить” и видим структуру каталогов вашего Яндекс-хранилища:

Выбираем заранее созданную на сервере Yandex папку “Резервные копии”. Если заранее папка не была создана, то вы можете создать ее, нажав кнопку “* Новая папка”. Нажимаем “ОК” для подтверждения выбора.

Стандартные средства Windows

Начиная с Windows 8, можно создать образ системы без помощи сторонних приложений. Образ — это все данные на вашем компьютере, скопированные в определенный момент времени. Они сохраняются в специальной структуре, из которой впоследствии можно все восстановить обратно той же утилитой.

Сохранять образ рекомендуется на внешний носитель — съемный HDD, флешку (носители должны обязательно быть отформатированы в NTFS) или компакт-диск. Утилита позволяет сделать бэкап системного логического диска на другой диск, например, сохранить все данные с «C» на «D», но делать это не стоит, поскольку «летят» обычно не логические диски, а весь физический, поэтому такой бэкап окажется бесполезным.

Как только вы нашли место для своего бэкапа, можно приступать:

Через меню «Пуск» — «Параметры» перейдите в подраздел «Обновление и безопасность».

Кликните по вкладке «Служба архивации». В открывшемся блоке нажмите «Перейти в раздел Архивация и восстановление».

В новом окне нажмите по «Создание образа системы».

Откроется стартовое меню режима архивации. Здесь необходимо выбрать, куда будет сохранена резервная копия. На выбор доступны три варианта — жесткий диск, DVD или сетевая папка

Обратите внимание, если вы используете внешний HDD или USB FLASH, то при наличии ошибок их необходимо предварительно исправить

Выбрав место для хранения, нажмите «Далее». Здесь необходимо указать диски, образ которых вы хотите сделать. Выберите диск, на котором у вас установлена система (подсказкой служит соответствующее слово). Также обязательно поставьте галочку напротив строчки «Зарезервировано системой». Ниже можно узнать объем, который будет занимать весь образ. Если свободного пространства не хватает, вы получите предупреждение, как на скриншоте ниже.

Подтвердите все свои действия и в последнем окне нажмите на кнопку «Архивировать». После этого начнется процесс создания образа. Время выполнения — от нескольких минут до часа в зависимости от объема данных.

По окончании процесса на выбранном носителе появится папка с названием вашего устройства. Именно это и будет образом системы.

На крайний случай можно временно использовать flash-память. А вот SSD — не самый лучший выбор, поскольку в обесточенном состоянии ячейки памяти хранят данные около 6 месяцев.

Для восстановления системы с бэкапа необходимо перейти в одноименный раздел через меню «Пуск». После этого подключите накопитель к компьютеру и нажмите кнопку «Перезагрузить» в меню.

Затем в системном меню Windows выберите «Поиск и устранение неисправностей» — «Дополнительные параметры» — «Восстановление образа системы». Остается только указать образ и подтвердить.

Таким способом можно сделать резервную копию любого логического диска, а потом так же просто его восстановить.

Восстановление данных

В случае потери данных вы можете восстановить их из резервной копии с локального накопителя или с Яндекс.Диска. Для этого переключитесь во вкладку «Созданные резервные копии» и двойным кликом войдите в последнюю созданную резервную копию. Перед вами откроется окно, отображающее содержимое бэкапа.

Восстановление данных с сервера Yandex

Отметьте галочками папки, которые необходимо восстановить и, кликнув правой кнопкой мыши, произведите восстановление либо в исходное расположение, либо в любую временную папку. Программа сначала скачает ZIP-архив с сервера, а затем извлечет из него выбранные папки.

Автоматизация архивации сайта

По отдельности разобрали все элементы создания резервной копии сайта, теперь пришел черед собрать все это в одном месте. Я использую следующую схему бэкапа сайта:

  • Папка day, где хранится 7 архивов сайта за последние 7 дней.
  • Папка week, где хранятся 4 бэкапа за последние 4 недели.
  • Папка month, где хранятся все резервные копии сайта за все время, эту папку я автоматически не очищаю.

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

Привожу 3 полных скрипта по созданию резервной копии сайта wordpress, именно этот движок я чаще всего использую, но реально можно бэкапить любой сайт — joomla, drupal, modx и др. Принципиального значения cms или фреймворк не имеет.

Скрипт ежедневного бэкапа сайта backup-day.sh:

#!/bin/sh
# Задаем переменные
# Текущая дата в формате 2015-09-29_04-10
date_time=`date +"%Y-%m-%d_%H-%M"`
# Куда размещаем backup
bk_dir='/mnt/yadisk/site1.ru/day'
# Директория для архива
inf_dir='/web/sites/site1.ru/'
# Название непосредственно директории с файлами
dir_to_bk='www'
# Пользователь базы данных
user='user1'
# Пароль пользователя
password='pass1'
# Имя базы для бэкапа
bd_name='bd1'
# Монтируем яндекс.диск
mount -t davfs https://webdav.yandex.ru /mnt/yadisk/
# Создание архива исходников
/usr/bin/tar -czvf $bk_dir/www_$date_time.tar.gz -C $inf_dir $dir_to_bk
# Выгружаем базу данных
/usr/bin/mysqldump --opt -v --databases $bd_name -u$user -p$password | /usr/bin/gzip -c > $bk_dir/mysql_$date_time.sql.gz
# Удаляем архивы старше 7-ми дней
/usr/bin/find $bk_dir -type f -mtime +7 -exec rm {} ;
# Отключаем яндекс.диск
umount /mnt/yadisk

Скрипт еженедельного бэкапа сайта backup-week.sh:

#!/bin/sh
# Задаем переменные
# Текущая дата в формате 2015-09-29_04-10
date_time=`date +"%Y-%m-%d_%H-%M"`
# Куда размещаем backup
bk_dir='/mnt/yadisk/site1.ru/weeek'
# Директория для архива
inf_dir='/web/sites/site1.ru/'
# Название непосредственно директории с файлами
dir_to_bk='www'
# Пользователь базы данных
user='user1'
# Пароль пользователя
password='pass1'
# Имя базы для бэкапа
bd_name='bd1'
# Монтируем яндекс.диск
mount -t davfs https://webdav.yandex.ru /mnt/yadisk/
# Создание архива исходников
/usr/bin/tar -czvf $bk_dir/www_$date_time.tar.gz -C $inf_dir $dir_to_bk
# Выгружаем базу данных
/usr/bin/mysqldump --opt -v --databases $bd_name -u$user -p$password | /usr/bin/gzip -c > $bk_dir/mysql_$date_time.sql.gz
# Удаляем архивы старше 30-ти дней
/usr/bin/find $bk_dir -type f -mtime +30 -exec rm {} ;
# Отключаем яндекс.диск
umount /mnt/yadisk

Скрипт ежемесячного бэкапа сайта backup-month.sh:

#!/bin/sh
# Задаем переменные
# Текущая дата в формате 2015-09-29_04-10
date_time=`date +"%Y-%m-%d_%H-%M"`
# Куда размещаем backup
bk_dir='/mnt/yadisk/site1.ru/month'
# Директория для архива
inf_dir='/web/sites/site1.ru/'
# Название непосредственно директории с файлами
dir_to_bk='www'
# Пользователь базы данных
user='user1'
# Пароль пользователя
password='pass1'
# Имя базы для бэкапа
bd_name='bd1'
# Монтируем яндекс.диск
mount -t davfs https://webdav.yandex.ru /mnt/yadisk/
# Создание архива исходников
/usr/bin/tar -czvf $bk_dir/www_$date_time.tar.gz -C $inf_dir $dir_to_bk
# Выгружаем базу данных
/usr/bin/mysqldump --opt -v --databases $bd_name -u$user -p$password | /usr/bin/gzip -c > $bk_dir/mysql_$date_time.sql.gz
# Отключаем яндекс.диск
umount /mnt/yadisk

Не забудьте создать директорию /mnt/yadisk/site1.ru на яндекс диске, а в ней еще 3 папки: day, week, month: # cd /mnt/yadisk/site1.ru && mkdir day week month

Теперь для автоматизации добавляем эти 3 файла в cron:

# mcedit /etc/crontab
# site backup to yandex.disk
# ежедневно в 4:10
10 4 * * * root /root/bin/backup-day.sh >/dev/null 2>&1
# еженедельно в 4:20 в воскресенье
20 4 * * 0 root /root/bin/backup-week.sh >/dev/null 2>&1
# ежемесячно в 4:30 1-го числа месяца
30 4 1 * * root /root/bin/backup-month.sh >/dev/null 2>&1

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

Корзина Яндекс.Диска

При работе с Яндекс.Диском нужно обязательно учитывать его особенность — Корзину. Когда файлы удаляются (любым способом), то они переносятся в корзину. При этом их не видно, но они продолжают занимать место. Создание бэкапов — это цикличный процесс. Старые файлы удаляются, на их месте создаются новые, и так до бесконечности. Очевидно, что если в данном случае не чистить корзину, то однажды она переполнится и доступного для бэкапов места просто не останется. Создание бэкапов остановится!

Чистить корзину Яндекс.Диска можно только через веб-интерфейс. Никакой консольной команды или опции для работы с корзиной не существует. Однако, есть разные хитрости. Во-первых, здесь описана одна из наиболее рекомендуемых.

Во-вторых, вот другая хитрость, которой я раньше пользовался: можно создать скрипт бэкапа таким образом, чтобы старые файлы не удалялись! Старые файлы можно просто переименовывать и перезаписывать. Число файлов при этом меняться не будет и удаленных файлов в корзине тоже появляться не будет. Вот пример бэкапа каталога :

Сохраняем код в файл, куда удобно, например, в , устанавливаем на него права 740 (с возможностью запуска) и добавляем в крон, допустим, для ежедневного выполнения.

Надеюсь принцип работы кода понятен? Обращаю внимание, что в примере архив бэкапа не создается сразу в каталоге Яндекс.Диска. Он создается во временном каталоге, а потом уже копируется в каталог Яндекс.Диска

Иногда архивы бэкапов могут быть очень большими и их создание может сильно растянутся по времени. Ни к чему, чтобы Яндекс.Диск пытался засинхронизировать ещё не до конца созданный архив.

Для верности между некоторыми командами скрипта я добавил команду , которая обеспечивает 10-ти секундную паузу. Дело в том, что в процессе работы по такому принципу я замечал, что у меня иногда всё же образовывались лишние/удалённые файлы. Видимо, когда команды переименования и замены файлов выполняются слишком быстро, то Яндекс.Диску иногда может срывать крышу. Благодаря добавлению паузы и неторопливому выполнению команд этого удалось полностью избежать!

Что делать, если несколько сайтов

Вы, наверное, уже знаете, что у меня пять сайтов. Естественно, запускать их отдельно устанешь, но хорошо, что в той же статье был размещён второй скрипт, который запускает по очереди все остальные скрипты.

  • 1. ;
  • 2. Замените site1.ru, site2.ru и т. д. на адреса своих сайтов. Кроме этого, не забудьте прописать после него папку, в которой расположен этот скрипт;
  • 3. Сохраните изменения и загрузите на сервер, поместив его как можно дальше от корневой папки сайта.

Если у вас меньше пяти сайтов, просто удалите строки, имеющие вид:

Echo »
«;
$response = file_get_contents(«http://site5.ru/beckup.php»);
echo iconv(«Windows-1251», «utf-8», $response);

Если у вас сайт в зоне.рф, вам, перед тем, как прописывать адрес, придётся переводить в Panycode

Надеюсь, что статья вам была полезна.

Жду комментариев.

Особенности

Политика использования Яндекс.Диска позволяет в пункте 5.1 распространять данные со своего облака третьим лицам, но в пункте 5.2 предупреждает, чтобы этими возможностями не злоупотребляли. Также, в пункте 4.6 сказано, что компания оставляет за собой право менять любые правила, лимиты и ограничения на использование сервиса.

Исходя из положений можно отметить:

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

Работа с файлом бекапа сайта на Яндекс диск

Сначала надо изменить адрес mysql сервера. В большинстве случаев это localhost, поэтому я там его и оставил, если же другой, заменяем его на свой в строке

$dbhost = «localhost»; //Адрес MySQL сервера.

В строчке ниже, заменяем «database_user» на своё значение имени пользователя базы данных mysql.

«database_name» — на название базы данных mysql.

Вместо «site_dear_hear» вставляем свой путь к сайту от корня диска.

После этого, переходим к настройке Яндекс диска:

  • 1. «» заменяем на свой адрес электронной почты в Яндексе;
  • 2. «yandex_password» на пароль от почты Яндекса;
  • 3. Создаём в корневой папке Яндекс диска директорию «backup» (туда будут сохраняться ваши резервные копии).

Всё. Сохраняем файл и загружаем на сервер.

Не рекомендую его загружать в корневой каталог сайта, потому что будут постоянно обращаться к нему всякие роботы, из-за чего Яндекс диск будет заполняться лишними копиями бекапов. Лучше создать папку, например «a3hd7siq8a7s9xeeewwwerw-0-032-_2», чтобы никто, кроме вас и cran не знал, где он у вас.

Cran — это планировщик заданий: специальная программа, при помощи которой вы можете ставить запуск скриптов по расписанию, но как им пользоваться не знаю, поэтому здесь помочь не смогу.

Отправка файла бэкапа на яндекс диск

А вот если бы ты почитал документацию, то этого вопроса у тебя бы не возникло! Или ты почитал? А чего это ты такой умный тогда? Иди отсюда, мальчик.

ya.disc-send.sh

#!/bin/bash

BACKUP_DIR='/local/backup/path'
YADISC_DIR='disk:/path-in-ya.disk/'

# найти последний .zip файл в папке бэкапов
LAST_BACKUP=$(ls -t $BACKUP_DIR/.zip | head -1)

LAST_BACKUP_PATH=$BACKUP_DIR$LAST_BACKUP

if 
then
    echo -e "Бэкапов для отправки на ya.disk не найдено\n"
    exit
fi


/usr/bin/ydcmd put $LAST_BACKUP_PATH $YADISC_DIR

rm -f $LAST_BACKUP_PATH

echo 'done!'

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

Восстановление сайта из резервной копии

Теперь рассмотрим вариант, когда вам необходимо восстановить сайт из резервной копии. Для этого нам понадобятся оба архива: исходники и база данных. Разархивировать в принципе можно где угодно. В windows архивы открываются бесплатным архиватором 7zip. Дамп базы данных в обычном текстовом формате, его можно открыть блокнотом, скопировать и вставить в phpmyadmin, если база небольшая.

Так что вариантов восстановления может быть много, этим мне и нравится такой подход. Все файлы в открытом виде, с ними можно работать любыми подручными средствами.

Вот пример того, как извлечь файлы из архива в консоли сервера. Разархивируем каталог www из бэкапа:

# tar -xzvf www_2020-12-01_04-10.tar.gz

Файлы извлечены в папку www. Теперь их можно скопировать в папку с сайтом.

Для восстановления базы данных поступаем следующим образом. Сначала распакуем архив:

# gunzip mysql_2020-12-01_04-10.sql.gz

Теперь зальем дамп в базу данных:

# mysql --host=localhost --user=user1 --password=pass1 bd1;

> source mysql_2020-12-01_04-10.sql;

Все, база данных восстановлена.

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

Облако как лучшее хранилище для бэкапа

Флешки и внешние HDD не гарантируют абсолютной сохранности данных. Недавно мы выпустили обзор лучших сервисов для резервных копий, где вы можете подробно изучить всю информацию.

Если коротко, то предлагает Google Диск и сервис Mega. У Google ограничение на загрузку отдельного файла целых 5 ТБ, поэтому образ «чистой» Windows вполне можно сохранить, не говоря о многочисленных документах, фото и других файлах.

В Mega на бесплатных аккаунтах установлен лимит на передачу данных с одного IP-адреса до 4 ГБ каждые 6 часов. На первый месяц вам дают целых 50 ГБ облака (15 стандартные + 35 за регистрацию). Впрочем, за отдельные действия можно еще на 180–365 дней получить бонусный объем и трафик.

Если говорить о платных тарифах, то здесь есть масса вариантов. Например, «Яндекс.Диск» предлагает 3 ТБ всего за 900 рублей в месяц, а при годовой подписке ценник снижается до 625 рублей. Mega в свою очередь дает 16 ТБ за 29,99 евро в месяц.

Достаточно гибкая ценовая политика у «Mail.ru Облако» — сервис предусмотрел целых шесть разных тарифов.

Большинство домашних компьютеров имеют HDD на 500–1000 ГБ, которые далеко не всегда полностью забиты данными, поэтому брать облако больше, чем 1-2 ТБ обычным юзерам особого смысла нет.

Для корпоративного хранения данных стоит изучить специальные предложения от DropBox, а сервис pCloud, например, предлагает купить пожизненный доступ.

Ротация бэкапов

Есть много всяких готовых и более совершенных, но я слишком стар для этого дерьма и быстрее руками было написать простенький скриптик

ya.disc-rotate.sh

#!/bin/bash
SERVER_NAME='MyOwnServer'
CONFIG_PATH='/home/you/.ydcmd.cfg'
YD_COMMAND='/usr/bin/ydcmd --config='$CONFIG_PATH
YADISC_DIR='disk:/path-in-ya.disk/'

LIST=$($YD_COMMAND ls $YADISC_DIR)
ARCHIVES=$(echo "$LIST" | sed -r 's/.*](.*\.zip).*$//g')

# текущая дата
now=$(date)

for itm in $ARCHIVES
do
    # пропустить архивы, которые не относятся к правильным
    if ]
    then
        echo -e "Это архив не того бэкапа $YADISC_DIR$itm\n"
        continue
    fi

    cr=$($YD_COMMAND stat $YADISC_DIR$itm | grep created)
    cr=$(echo "$cr" | sed -r 's/.*created:(.*$)//g')
    weekday=$(date -d $cr '+%u')
    
    # разница между датами в днях
    SDIFF=$((((`date -d "$now" '+%s'` - `date -d "$cr" '+%s'`))/((60*60*24))))

    # Старые архивы удаляем. Старше 28 дней
    if (($SDIFF > 28))
    then
        echo -e "Удаляем старый $YADISC_DIR$itm'\n"
        $YD_COMMAND rm $YADISC_DIR$itm
        continue
    fi

    # архивы понедельника не трогаем
    if 
    then
        echo -e "Понедельничный архив не трогаем $YADISC_DIR$itm\n"
        continue
    fi
    
    # последние 3 дня оставляем
    if (($SDIFF < 3))
    then
        echo -e "Оставляем $YADISC_DIR$itm\n"
        continue
    fi

    echo -e "Удаляем остальное $YADISC_DIR$itm\n"
    $YD_COMMAND rm $YADISC_DIR$itm
done

echo 'done!'

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

Логика ротации такая: условия проверяются в порядке приоритета от более строгого правила к более мягкому: бэкапы старше 25 дней удаляются → бэкапы понедельника оставляются → за последние 3 дня оставляем → всё что не попало под вышеозвученные правила строго удаляем.

На выходе имеем бэкапы за 3 последних дня + 4 последних понедельника. Обычно этого более чем достаточно, если ты хотя бы иногда проверяешь работоспособность своего сайта.

Что еще плохого у Яндекс.Диска?

Кроме особенностей корзины и неработающего по умолчанию автозапуска меня озадачило, что Яндекс.Диск при синхронизации съедает определённое количество ресурсов. В частности показатель Load average на моём новом веб-сервере возрастает примерно в два раза — вместо обычных 0.4…0.8 в часы пик может доходить примерно до 1.5.

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

Что же в итоге? Проверяйте, достаточно ли будет ресурсов для работы Яндекс.Диска в вашем случае, не будет ли он слишком тормозить работу веб-сервера. Кроме того, очевидно, что лучше организовать бэкапы и синхронизацию во время наименьшей активности сайтов, обычно это ночью. А ещё можно держать запущенным Яндекс.Диск только в нужное для бэкапов время. Автоматический запуск и остановку демона по времени организовать не сложно.

Автокликер для 1С Промо

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

1 стартмани

Добавляем задания в CRON

Открываем файл CRON

nano /etc/crontab

Добавляем данные:

# Backup to Yandex Disk # ежедневно в 2:00 00 2 * * * root /my_scripts/backup_webdav_day.sh >/dev/null 2>&1 # еженедельно в 2:20 в понедельник 20 2 * * 1 root /my_scripts/backup_webdav_week.sh >/dev/null 2>&1 # ежемесячно в 3:00 каждого 1-го числа месяца 00 3 1 * * root /my_scripts/backup_webdav_month.sh >/dev/null 2>&1

Для работы скрипта через cron, нужно назначить правильные права доступа на файлы. Иначе будет отказано в доступе. Для этого в командной строке выполняем:

cd /my_scripts/ chmod +x backup_webdav_day.sh chmod +x backup_webdav_week.sh chmod +x backup_webdav_month.sh

Настройка яндекс диска в CentOS 8

Существует достаточно удобный и бесплатный сервис Яндекс.Диск, который может использовать любой желающий. Бесплатно дается не так много места, но для бэкапа сайта хватит. К слову, у меня с помощью всевозможных акций бесплатно доступно 368 ГБ:

Яндекс.Диск раньше можно было подключать с помощью webdav, но в какой-то момент эта возможность была закрыта. Причем без анонса и уведомления. Теоретически, вы можете использовать webdav, но практически работать он не будет.

У меня в качестве сервера выступает CentOS 8, поэтому я расскажу как настроить консольный клиент linux для работы с яндекс диском в нем. Если у вас еще нет своего сервера, то читайте мои статьи по этому поводу — установка и настройка centos.

Для яндекс диска есть готовый rpm пакет, с помощью которого можно быстро установить клиента.

# rpm -ivh http://repo.yandex.ru/yandex-disk/yandex-disk-latest.x86_64.rpm

При такой установке, вам его обновлять придется вручную. Есть возможность подключить репозиторий, чтобы потом он обновлялся автоматически через dnf.

mcedit /etc/yum.repos.d/yandex.repo
name=Yandex
failovermethod=priority
baseurl=http://repo.yandex.ru/yandex-disk/rpm/stable/$basearch/
enabled=1
metadata_expire=1d
gpgcheck=1
gpgkey=http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG
# rpm --import http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG
# dnf install yandex-disk

Клиент диска установили, теперь его надо настроить. Это можно сделать с помощью консольной команды.

# yandex-disk setup

Запустится мастер настройки, комментировать которые особо нет смысла, там и так все понятно.

Теперь все файлы, положенные в директорию /mnt/yadisk будут синхронизированы с облаком и загружены в него. Файлы не обязательно класть физически, подойдут и символьные ссылки. Статус синхронизации можно посмотреть отдельной командой.

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

Беэкап — что это и зачем?

Бэкап (backup) — резервная копия каких-либо данных. Предположим, у вас на компьютере есть папка с любимыми фотографиями. Вы взяли и скопировали все снимки на отдельную флешку. Это и есть простейший бэкап.

Однако когда речь заходит о сотнях мегабайт информации, а также необходимости сделать образы операционной системы или всего жесткого диска, то взять и «перетянуть» нужные файлы просто так не получится. Намного удобнее и быстрее это делать с помощью специализированных программ.

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

Если говорить об ОС Windows, то все зависит от пользователя. Обычно достаточно делать резервную копию после успешной установки какого-либо софта, чтобы в случае повреждения системных файлов или потери данных восстановить копию уже со всеми необходимыми программами. Другой вариант — бэкап свежеустановленной Windows. При нестабильной работе ОС вы сможете быстро восстановить систему, но весь пользовательский софт придется инсталлировать заново.

Ежедневная резервная копия MySQL и одной папке

Теперь создаём папку на сервере, куда будем складывать все свои скрипты – my_scripts и первый файл скрипта backup_webdav_day.sh:

cd / sudo mkdir my_scripts nano /my_scripts/backup_webdav_day.sh

Скрипт будет сохранять ежедневные копии базы данных MySQL и также папку themes (шаблона сайта для WordPress). Я частенько совершенствую дизайн сайта и добавляю какие-нибудь новые элементы

И мне важно иметь копии этих данных на каждый день

Можно папку themes поменять на любую другую. Например на папку загрузки изображений, в WordPress это папка – uploads. Если вы пишите статьи каждый день и загружаете картинки в каждую статью, то для вас может быть важным создание ежедневных резервных копий всех скриншотов на сайте.

Записываем в файл backup_webdav_day.sh следующее:

#!/bin/sh# Текущая дата в формате год-месяц-день_часы-минутыdate_time=`date +»%Y-%m-%d_%H-%M»`# Место размещения резервных файлов на Яндекс Дискеyandex_dir=’/mnt/yandex/site_name.ru/day’# Абсолютный путь к папке на сервереserver_dir=’/home/admin/web/site_name.ru/public_html/wp-content/’# Название директории с файлами (после абсолютного пути)files_dir=’themes’# Данные базы MySQL# Имя базыbd_name=’имя’# Имя пользователяuser=’имя’# Пароль пользователяpassword=’пароль’# Монтируем Яндекс Дискmount -t davfs https://webdav.yandex.ru mntyandex# Создаём архивusrbintar -czvf $yandex_dirfiles_$date_time.tar.gz -C $server_dir $files_dir# Выгружаем базу данныхusrbinmysqldump —opt -v —databases $bd_name -u$user -p$password | usrbingzip -c > $yandex_dirmysql_$date_time.sql.gz# Удаляем архивы старше 7 днейusrbinfind $yandex_dir -type f -mtime +7 -exec rm {} \;# Отключаем Яндекс Дискumount mntyandex

Можно копировать не только весь сайт целиком, но и отдельные папки. Правим пути, выбрав нужные папки, затем сохраняем скрипт.

Ручной запуск скрипта:

sh /my_scripts/backup_webdav_day.sh

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: