Перейти к содержанию
Авторизация  

Бэкап MySQL баз данных с сохранением в DropBox


Описание

Бэкап MySQL баз данных с сохранением в DropBox

Встала задача сохранять бэкапы мускула в DropBox'e.

Сказано – сделано!

 

Быстрым гуглением нашёл shell скрипт, позволяющий загружать(и другие операции, в том числе удалять) файлы на DropBox.

Ссылка на проект с гитхаба - https://github.com/a...ropbox-Uploader

 

Скачиваем проект и заливаем на сервер.

Я выбрал папку /home/cron/ для содержимого bash скриптов.

Предварительно создаём эту папку.

 

mkdir /home/cron/
wget https://github.com/andreafabrizi/Dropbox-Uploader/archive/master.zip --output-document=/home/cron/master.zip

 

Разархивируем архив и перенесём нужный нам файл dropbox_uploader.sh в нашу папку /home/cron/.

 

cd /home/cron
unzip master.zip
mv Dropbox-Uploader-master/dropbox_uploader.sh dropbox_uploader.sh
rm master.zip
rm -rf Dropbox-Uploader-master

 

Далее даём права на исполнение

 

chmod +x dropbox_uploader.sh

 

И запускаем скрипт

 

./dropbox_uploader.sh

 

В ответ получаем:

 

This is the first time you run this script.
Please open this URL from your Browser, and access using your account:
-> href="https://www2.dropbox.com/developers/appsIf you haven't already done, click "Create an App" and fill in the
form with the following data:
App name: MyUploader285109611
Description: What do you want...
Access level: App folder or Full DropboxNow, click on the "Create" button.
When your new App is successfully created, please type the
App Key, App Secret and the Access level:
# App key:

 

Далее согласно инструкции открываем адрес https://www2.dropbox...developers/apps в любимом браузере.

 

pre_1382398530__dropbox_path_app.png

 

 

И нажимаем создать приложение.

 

pre_1382398620__dropbox_create_app.png

 

Заполняем данные приложения. Название приложения должно быть уникальным в DropBox'e.

В выборе доступа (Access) можно выбрать только доступ к папке с приложением или доступ ко всем папкам аккаунта.

Нажимаем создать приложение и переходим на страницу с данными для авторизации.

 

pre_1382398575__dropbox_get_key.png

 

 

Теперь возвращаемся к нашему терминалу и заполняем данные:

  • App key
  • App secret
  • Отвечаем на вопрос какой доступ (access) есть у приложения (a – только к папке приложения, f – полный доступ к аккаунту)
  • Подтверждаем ведённые данные (y – всё верно)

When your new App is successfully created, please type the
App Key, App Secret and the Access level:
# App key: be54w2ut98459vg
# App secret: 6r22w8rgeum7jfi
# Access level you have chosen, App folder or Full Dropbox [a/f]: a
> App key is be54w2ut98459vg, App secret is 6r22w8rgeum7jfi and Access level is App Folder, it's ok? [y/n]y
> Token request... OK
Please visit this URL from your Browser, and allow Dropbox Uploader
to access your DropBox account:
--> https://www2.dropbox.com/1/oauth/authorize?oauth_token=uo5s2mb8knggpup
Press enter when done...

 

После ввода данных происходит получение токена и ссылки по которой нужно активировать доступ приложения к аккаунту.

Переходим по полученной ссылке https://www2.dropbox...uo5s2mb8knggpup

 

pre_1382398658__dropbox_allow_app.png

 

 

Жмём разрешить (Allow).

Всё, теперь можно пользоваться созданным приложением.

На мыло, при этом приходит письмо.

 

pre_1382398702__dropbox_email.png

 

Переходим в терминал и нажимаем Enter.

 

> Access Token request... OK
Setup completed!

 

OK. Настройка завершена.

Попробуйте протестировать, например, запросив инфу из аккаунта

 

# ./dropbox_uploader.sh info
Dropbox Uploader v0.11.2
> Getting info...
Name: DevPad.RU
UID: 147******
Email: email@test.com
Quota: 3072 Mb
Used: 1198 Mb
Free: 1873 Mb

 

Ура, работает!

 

Теперь напишем скрипт для бэкапа MySQL баз данных. Я напишу скрипт бэкапа сразу 3 баз данных, чтобы и вы могли использовать его с лёгкостью!

 

Создадим файл backup.sh и засунем в него такой код

 

#!/usr/local/bin/bash
DATE=`date "+%Y_%m_%d"`						 # текущая дата
LOGIN="root"		 # рутовый логин MySQL
PASSWORD="pass"					 # пароль к MySQL
DROPBOX_UPLOADER="/home/cron/dropbox_uploader.sh" # путь к скрипту DropBox аплоадера
DROPBOX_PATH="/"								 # корневая папка в которую сохранять в DropBox'e
SQL_PATH="/home/sql/backup/"					 # папка, куда сохранять MySQL бэкапы на сервере
MYSQLDUMP="mysqldump"							 # путь к программе MySQLDump
databases=(bd1 bd2 bd3)				 # базы данных через пробелfor database in "${databases[@]}"
do
echo "MySQL backup database: ${database}"
$MYSQLDUMP -q -u$LOGIN -p$PASSWORD $database > ${SQL_PATH}${database}_${DATE}.sql
gzip -9 -c ${SQL_PATH}${database}_${DATE}.sql > ${SQL_PATH}${database}_${DATE}.sql.gz
$DROPBOX_UPLOADER upload ${SQL_PATH}${database}_${DATE}.sql.gz ${DROPBOX_PATH}${database}/${DATE}.sql.gz
rm ${SQL_PATH}${database}_${DATE}.sql.gz
done
# удаляем все бэкапы старше 10 дней
find ${SQL_PATH} -type f -mtime +10 -exec rm -f {} \;
# архивируем бэкапы полученные более 1 дня назад
find ${SQL_PATH} -type f -mtime +1 -exec gzip -9 {} \; 2>/dev/null

 

Обратите внимание, что у вас доступ к bash, описанный в первой строке (#!/usr/local/bin/bash), может отличаться.

Узнать точный адрес можно командой

 

# which bash
/usr/local/bin/bash

 

Попробуем запустить скрипт.

 

# /home/cron/backup.sh
MySQL backup database: bd1
> Uploading /home/sql/backup/bd1_2012_11_30.sql.gz to /bd1/2012_11_30.sql.gz...
######################################################################## 100.0%
> DONE
MySQL backup database: bd2
> Uploading /home/sql/backup/bd2_2012_11_30.sql.gz to /bd2/2012_11_30.sql.gz...
######################################################################## 100.0%
> DONE
MySQL backup database: bd3
> Uploading /home/sql/backup/bd3_2012_11_30.sql.gz to /bd3/2012_11_30.sql.gz...
######################################################################## 100.0%
> DONE

 

 

 

Ура! Заработало!

 

Теперь создадим задание в кроне на бэкап раз в сутки.

 

# crontab -e
0	 03	 *	 *	 *	 /usr/local/bin/bash /home/cron/backup.sh

 

Мы установили создание бэкапа в 3 ночи. Путь к bash может отличаться.

Желательно сразу протестировать работу крон задания, т.к. возможно придётся вносить правки и использовать абсолютные пути.

 

Источник http://devpad.ru/pos...ve-dropbox.html



Рекомендуемые комментарии

Комментариев нет

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...