Бэкап linux яндекс диск

Бэкап сайта на Яндекс.Диск в Debian

Дмитрий Корнев

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

  • Доступен любому пользователю Яндекса.
  • Бесплатно предоставляется 10 Гб места.
  • Дополнительное место стоит сравнительно недорого.
  • Немного дополнительного места можно получить бесплатно.
  • Надежность сервиса не вызывает сомнений.

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

Я для веб-сервера предпочитаю Debian 7 и поэтому дальнейшее руководство составлено и опробовано именно в этой ОС. Подключаем репозиторий Яндекса, для чего в файле /etc/apt/sources.list добавляем строчку:

Обновляем список пакетов и устанавливаем Яндекс.Диск:

В процессе установки Яндекс.Диска мастер настройки спросит:

  • Каталог, где будут находиться синхронизируемые файлы и каталоги Яндекс.Диска. Если ничего не указывать, то каталог Yandex.Disk по умолчанию будет создан в домашнем каталоге пользователя.
  • Вы используете прокси-сервер? Да/Нет.
  • Запускать клиент при старте системы? Да/Нет.
  • Имя пользователя на Яндексе. Указать нужно просто ИМЯ , а не ИМЯ@yandex.ru . Ну, или если вы используете почту для домена, то указать нужно полный адрес своей эл. почты.
  • Пароль на Яндексе.

Если вопросов не последовало, то запустите мастер настройки вручную:

Вот так всё легко! По сути вы просто отвечаете на вопросы мастера настройки, а сразу после этого Яндекс.Диск готов к работе.

Любые файлы и каталоги, которые вы поместите в каталог Yandex.Disk (название по умолчанию) будут автоматически синхронизироваться. Ну и, конечно, если у вас Яндекс.Диск и так уже не был пустым, то всё его содержимое тоже появится здесь же.

По умолчанию работает полная синхронизация данных. Убедитесь, что у вас достаточно места на диске веб-сервера.

В процессе установки Яндекс.Диск создает файл конфигурации

/.config/yandex-disk/config.cfg . По умолчанию в нем немного параметров и их назначение не вызывает вопросов. В этот же файл можно добавлять свои параметры, в частности:

Из командной строки Яндекс.Диск понимает:

Соответственно, — старт, стоп и статус работы демона.

Последняя команда может показывать состояние и ошибки синхронизации, список синхронизированных файлов, общее и свободное пространство на Яндекс.Диске.

Параметры в командах можно упустить.

Я привёл не полный набор команд и параметров Яндекс.Диска, кому нужно больше, ищите подробности в официальном руководстве, ссылка выше была.

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

Читайте также:  Настройка x11 astra linux

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

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

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

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

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

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

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

Автозапуск Яндекс.Диска

Мастер настройки Яндекс.Диска задает вопрос при установке: хотим ли мы запускать программу при старте системы? Конечно, на это стоит отвечать утвердительно. Так сделал и я. Но несмотря на это демон не стартовал у меня в Debian 7 автоматически. И судя по этой ссылке я не одинок. Автору заметки по ссылке отдельное спасибо! Я поступил аналогично, у меня автостарт заработал. Если коротко, то создаем скрипт запуска yandex_autorun.sh :

Это для настроек по умолчанию и пользователя root. Если при установке Яндекс.Диска вы меняли основной каталог и расположение конфигурации, то, соответственно, измените их и здесь.

Файл скрипта располагаем, где удобно, например, в каталоге того же пользователя: /root/yandex_autorun.sh . Устанавливаем на него права 740 (с возможностью запуска). Добавляем в файл /etc/crontab строчку:

После редактирования crontab выполняем:

Готово, можно перезагружать веб-сервер и смотреть на результат.

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

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

Читайте также:  Управление размером дисков windows

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

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

Источник

Создаём резервные копии и перемещаем на Яндекс Диск

Описание создания резервных копий файлов своего сайта на сервере CentOS (Linux). И дальнейшее перемещение этих backup файлов на Яндекс.Диск.

Для сохранения данных своего сайта важно вовремя делать резервные копии. Желательно копии резервных данных хранить на стороннем сервере. В данном случае мы будем сохранять резервные копии файлов на Яндекс.Диске.

Если вам не нужно создание копий, а требуется только перемещение, читайте статью: «Как перемещать резервные копии сайта на Яндекс Диск».

Первым делом, на Linux сервер устанавливаем Яндекс.Диск, который будет работать по протоколу WebDav.

Только после установки диска приступаем к настройке копирования резервных данных.

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

На Яндекс.Диске создаём папки с названием сайта. Затем внутри этой папки создаём следующие папки: day, week, month.

Те же самые действия можно проделать через командную строку.

Создание папок через командную строку:

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

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

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

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

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

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

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

Еженедельная полная резервная копия

Создаём копию для всего сайта.

Создаём файл скрипта backup_webdav_week.sh:

Записываем в этот файл:

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

Ежемесячная полная резервная копия

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

Создаём файл скрипта backup_webdav_month.sh:

Записываем в этот файл:

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

Ошибка line 20: /usr/bin/tar: No such file or directory

Если возникает подобная ошибка, значит tar находится в другой директории. Попробуйте изменить /usr/bin/tar на /bin/tar. И запустить скрипт ещё раз.

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

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

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

Читайте также:  Ограничить всех пользователей одиночными сеансами windows 10

Делаем для скриптов резервную копию

Создаём скрипт очищающий временную папку с кэшем

При создании резервных копии содержимое остаётся в папке с кэшем /var/cache/davfs2/, что приводит к переполнению жесткого диска. Решаем эту задачу созданием специального скрипта. Подробнее в статье переполнение кэша davfs2.

Как разархивировать архив

Для восстановления резервных файлов на сервере используем рекомендациями из статьи «быстрое восстановление резервных копий на сервере Linux».

Читайте также

Кстати, на сайте нет рекламы. У сайта нет цели самоокупаться, но если вам пригодилась информация можете задонатить мне на чашечку кофе в макдаке. Лайкнуть страницу или просто поблагодарить. Карма вам зачтется.

Комментарии к статье “ Создаём резервные копии и перемещаем на Яндекс Диск ” (2)

Здравсвуйте. Скажите, пожалуйста, как делать копию нескольких папок
/var/www/html/site1
/var/www/html/site2
/var/www/html/site3
/var/www/html/site4

В этих папках отдельные сайты, нужно папку site1 и все папки и файлы которые в ней забекапить

Источник

1С и Linux

Пишу для себя, чтобы не забыть как делал. 95 % рабочее. На комментарии отвечаю, когда увижу.

четверг, 14 февраля 2019 г.

Скрипт backup PostgreSQL 9.6 Yandex.Disk

Консольный клиент для Linux
Пользователи user и postgres
Настройка:
$ mkdir -p /home/user/backup/yandex
$ wget http://repo.yandex.ru/yandex-disk/yandex-disk_latest_amd64.deb
$ sudo dpkg -i yandex-disk_latest_amd64.deb
#$ sudo dpkg -r yandex-disk # если нужно удалить
$ rm yandex-disk_latest_amd64.deb
$ yandex-disk setup
Использовать прокси-сервер? [y/N]:
Авторизация
Если у вас ещё нет аккаунта на Яндексе, его можно завести по ссылке https://passport.yandex.ru/passport?mode=register

Введите логин: user@yandex.ru
Введите пароль:
Токен сохранен в /home/user/.config/yandex-disk/passwd
Настройка Яндекс.Диска
Введите путь к папке Яндекс.Диска (Оставьте пустым для использования папки ‘/home/user/Yandex.Disk’): /home/user/backup/yandex
Запускать Яндекс.Диск при входе в систему? [Y/n]:
Запуск демона. Готово

Команды
#$ yandex-disk start
#$ yandex-disk stop
#$ yandex-disk status

$ sudo mkdir /backup
$ sudo chown -R postgres:postgres /backup

sudo nano /etc/postgresql/9.6/main/pg_hba.conf
Раскомментировать:
local replication postgres peer
host replication postgres 127.0.0.1/32 md5

$ sudo nano /etc/postgresql/9.6/main/postgresql.conf
Добавить:

max_replication_slots = 10
max_wal_senders = 10
wal_level = replica

$ sudo systemctl restart postgresql

Вставить текст ниже:

#!/bin/sh
set -e
PASSWORD=’AQwTDF95Jpwsunx93iZH’
DATA=`date +»%Y-%m-%d_%H-%M-%S»`
DIR_TMP=’/backup’
DIR_BACKUP=’/home/user/backup’
DIR_YANDEX=’/home/user/backup/yandex’
#echo «———————————————————————» >> /home/user/backup/backup.log
# Записываем информацию в лог с секундами
echo «$DATA Start backup»
echo «$DATA Start backup» >> /home/user/backup/backup.log

sudo /bin/su postgres -c «rm -rf $DIR_TMP/*» && sudo /bin/su postgres -c «/usr/bin/pg_basebackup -D $DIR_TMP -Ft -z -Xf -P» && sudo mv $DIR_TMP/base.tar.gz $DIR_BACKUP/base-$DATA.tar.gz && sudo /bin/su user -c «openssl enc -aes-256-cbc -salt -in $DIR_BACKUP/base-$DATA.tar.gz -out $DIR_YANDEX/base-$DATA.tar.gz.enc -k $PASSWORD» && sudo /bin/su user -c «yandex-disk start»

#sudo /bin/su postgres -c «/usr/bin/vacuumdb -zfa» >> /home/user/backup/backup.log

if [ $? -ne 0 ]
then
echo «$DATA Ошибка завершения для backup»
echo «$DATA Ошибка завершения для backup» >> /home/user/backup/backup.log
else
echo «$DATA Успешное завершение backup»
echo «$DATA Успешное завершение backup» >> /home/user/backup/backup.log
fi
echo «———————————————————————» >> /home/user/backup/backup.log

Однократный запуск:
$ sudo sh backup_yandex.sh

Запуск по расписанию:
(Обратить внимание если сделать в конце дня, если компьютер выключается,
синхронизация может не завершиться)

$ sudo -i
# crontab -e
Добавить в конец (сработает в 17:00):
# каждые день в 17.00

Смотреть задания:
# crontab -l

Консольный клиент установлен от user
включить с утра можно так:

Источник

Оцените статью