Вывод будет следующим и будет содержать в себе инструкцию по установке и настройке скрипта
This is the first time you run this script.
1) Open the following URL in your Browser, and login using your account: https://www.dropbox.com/developers/apps 2) Click on "Create App", then select "Dropbox API app" 3) Select "Files and datastores" 4) Now go on with the configuration, choosing the app permissions and access restrictions to your DropBox folder 5) Enter the "App Name" that you prefer (e.g. MyUploader534303020128)
Now, click on the "Create App" button.
When your new App is successfully created, please type the App Key, App Secret and the Permission type shown in the confirmation page:
Заполняем данные приложения. Название приложения должно быть уникальным в Dropbox’e. В выборе доступа Access можно выбрать только доступ к папке с приложением или доступ ко всем папкам аккаунта. Выбираем создать приложение и переходим на страницу с данными для авторизации.
Теперь возвращаемся к нашему терминалу и заполняем данные:
App key
App secret
Отвечаем на вопрос какой доступ есть у приложения (a – только к папке приложения, f – полный доступ к аккаунту)
Подтверждаем ведённые данные (y – всё верно)
When your new App is successfully created, please type the App Key, App Secret and the Permission type shown in the confirmation page:
# App key: 6a50dfsoytmisen # App secret: s98jtaxdbemyx98 # Permission type, App folder or Full Dropbox [a/f]: a
> App key is 6a50dfsoytmisen, App secret is s98jtaxdbemyx98 and Access level is App Folder. Looks ok? [y/n]: y
> Token request... OK
Please open the following URL in your browser, and allow Dropbox Uploader to access your DropBox folder:
Работает! Теперь напишем скрипт для бэкапа MySQL баз данных. Я напишу скрипт бэкапа сразу 3 баз данных.
db_backup.sh
#!/bin/sh DATE=`date "+%Y_%m_%d_%H-%M-%S"` # текущая дата LOGIN="root"# рутовый логин MySQL PASSWORD="((:123456789:))"# пароль к MySQL DROPBOX_UPLOADER="/home/scripts/dropbox_uploader.sh"# путь к скрипту DropBox аплоадера DROPBOX_PATH="/"# корневая папка в которую сохранять в Dropbox'e SQL_PATH="/home/database_backup/"# папка, куда сохранять MySQL бэкапы на сервере MYSQLDUMP="mysqldump"# путь к программе MySQLDump databases=(news blog hosting) # базы данных через пробел 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/scripts/db_backup.sh MySQL backup database: news > Uploading /home/database_backup/news_2014_11_06.sql.gz to /news/2014_11_06.sql.gz... ######################################################################## 100.0% > DONE MySQL backup database: blog > Uploading /home/database_backup/blog_2014_11_06.sql.gz to /blog/2014_11_06.sql.gz... ######################################################################## 100.0% > DONE MySQL backup database: partners > Uploading /home/database_backup/hosting_2014_11_06.sql.gz to /partners/2014_11_06.sql.gz... ######################################################################## 100.0% > DONE
Путь к bash может отличаться. Желательно сразу протестировать работу крон задания, т.к. возможно придётся вносить правки и использовать абсолютные пути.