Skip to content

Mirr-or/site-backup-script

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Site backup script

Скрипт для архивации базы данных и файлов сайта с последующей отправкой на Яндекс.Диск. Основан на аналогичном скрипте от Сергея Луконина.

Технические требования

  • Unix-подобная операционная система
  • coreutils 8.16+
  • pv 1.1.4+ (Pipe Viewer)
  • grep 2.5.4+
  • tar 1.14+
  • gzip 1.3.12+
  • bc 1.03+

Установка и настройка

  1. Зарегистрировать приложение в Яндекс.OAuth для аккаунта, Яндекс.Диск которого будет использоваться для хранения бэкапов

    1.1. Платформы. Выбрать "Веб-сервисы", ниже нажать на ссылку "Подставить URL для разработки"

    1.2. Доступы. В группе "Яндекс.Диск REST API" поставить 2 галочки:

    • Доступ к информации о Диске
    • Доступ к папке приложения на Диске
  2. Получить токен вручную

  3. Загрузить скрипт на свой сервер и в настройках использовать полученный токен:

git clone https://github.com/FajeSu/site-backup-script.git ~/site-backup-script/
cd ~/site-backup-script/
cp _settings.sh.source _settings.sh
vim _settings.sh

Использование

  • Обязательные ключи командной строки:
-project-name Название проекта, используется в журналах событий и именах архивов
-db-user Пользователь базы данных (для режима db)
-db-pass Пароль пользователя базы данных (для режима db)
-project-dirs Директории для архивации, через запятую (для режима files)
  • Необязательные ключи командной строки:
-mode Выбор объекта архивации (режим):
  • db (база данных)
  • files (локальные файлы)
По-умолчанию "db,files", т.е. и БД, и файлы. Если указан только один объект, то обязательные ключи для другого становятся необязательными
-db-host Сервер базы данных (по-умолчанию - localhost)
-db-name Название базы данных (по-умолчанию используются данные из ключа -db-user)
-max-backups Максимальное количество бэкапов, хранимых на Яндекс.Диске (0 - хранить все бэкапы, по-умолчанию - 12)

Примеры

# Архивирование БД и файлов сайта. Максимальное кол-во хранимых бэкапов - 8
/bin/bash ~/site-backup-script/backup_script.sh -project-name site-domain.com -db-user username -db-pass password -project-dirs ~/site-domain.com/public_html/ -max-backups 8

# Архивирование только БД
/bin/bash ~/site-backup-script/backup_script.sh -project-name site-domain.com -mode db -db-user username -db-pass password

# Архивирование только файлов
/bin/bash ~/site-backup-script/backup_script.sh -project-name site-domain.com -mode files -project-dirs ~/site-domain.com/public_html/

# Архивирование отдельных файлов или директорий
/bin/bash ~/site-backup-script/backup_script.sh -project-name site-domain.com -mode files -project-dirs ~/site-domain.com/public_html/index.html,~/site-domain.com/public_html/tmp/

# Архивирование БД с другого сервера. На стороне того сервера необходимо дать доступ на подключение с определенного IP
/bin/bash ~/site-backup-script/backup_script.sh -project-name another-site.org -mode db -db-host another-site.org -db-name another_db -db-user another_user -db-pass another_password

Структура каталогов на Яндекс.Диске

Корневой каталог
└ Приложения
  └ <app-name>
    └ <project-name>
      └ <backup-time>
        └ файлы архивов

где

<app-name> Название приложения, указанное не этапе его регистрации
<project-name> Название проекта
<backup-time> Дата и время запуска скрипта на сервере, вида 20191231-235959

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%