Скрипт бекапа на Яндекс.Діск. Бекап на Яндекс.Диск з відпрацюванням помилок

Ми часто не замислюємося про збереження файлів, поки не буває якийсь форс-мажор. Наприклад, забутий у кафе або випадково залитий кавою ноутбук. Існує безліч способів убезпечити дані від випадкової втрати, але розібратися в них може лише фахівець.

Нова безкоштовна версія Handy Backup Яндекс.Диском

Допомоги API Диска , напишіть нам

Нова безкоштовна версія Handy Backup для Windows, інтегрована з Яндекс.Диском, зробить усю роботу за вас. За допомогою цієї утиліти легко налаштувати резервне копіювання важливих даних на ваш Диск і більше не турбуватися про їхню безпеку. Файли у хмарі доступні вам з будь-якого пристрою, і ви завжди зможете відновити їх у разі поломки або втрати ноутбука.

До речі, посилання на інтегровані з Диском програми ви завжди зможете знайти в нашій Допомозі. Якщо вам відомі інші програми, що використовують диски API , напишіть нам . Ми перевіримо їх та оновимо список.
","contentType":"text/html"),"proposedBody":("source":"Ми часто не замислюємося про збереження файлів, поки не трапляється якийсь форс-мажор. Наприклад, забута в кафе або випадково залита кава Існує безліч способів убезпечити дані від випадкової втрати, але розібратися в них часом може тільки фахівець.

Нова безкоштовна версія Handy Backup для Windows, інтегрована з Яндекс.Диском, зробить усю роботу за вас. За допомогою цієї утиліти легко налаштувати резервне копіювання важливих даних на ваш Диск і більше не турбуватися про їхню безпеку. Файли у хмарі доступні вам з будь-якого пристрою, і ви завжди зможете відновити їх у разі поломки або втрати ноутбука.

До речі, посилання на інтегровані з Диском програми ви завжди зможете знайти в нашій Допомозі. Якщо вам відомі інші програми, що використовують диски API , напишіть нам . Ми перевіримо їх та оновимо список.
","html":"Ми часто не замислюємося про збереження файлів, поки не трапляється якийсь форс-мажор. Наприклад, забутий у кафе або випадково залитий кавою ноутбук. Існує безліч способів убезпечити дані від випадкової втрати, але розібратися в них може лише фахівець.

Нова безкоштовна версія Handy Backup для Windows, інтегрована з Яндекс.Диском, зробить усю роботу за вас. За допомогою цієї утиліти легко налаштувати резервне копіювання важливих даних на ваш Диск і більше не турбуватися про їхню безпеку. Файли у хмарі доступні вам з будь-якого пристрою, і ви завжди зможете відновити їх у разі поломки або втрати ноутбука.

До речі, посилання на інтегровані з Диском програми ви завжди зможете знайти в нашій Допомозі. Якщо вам відомі інші програми, що використовують диски API , напишіть нам . Ми перевіримо їх та оновимо список.
","contentType":"text/html"),"authorId":"185828634","slug":"841","canEdit":false,"canComment":false,"isBanned":false,"canPublish" :false,"viewType":"old","isDraft":false,"isOnModeration":false,"isSubscriber":false,"commentsCount":28,"modificationDate":"Tue Jun 18 2013 12:01:54 GMT +0000 (UTC)","approvedPreview":("source":"Ми часто не замислюємося про збереження файлів, поки не трапляється якийсь форс-мажор. Наприклад, забутий у кафе або випадково залитий кави ноутбук. Існує безліч способів убезпечити дані від випадкової втрати, але розібратися в них може лише фахівець.

Нова безкоштовна версія Handy Backup для Windows, інтегрована з Яндекс.Диском, зробить усю роботу за вас. За допомогою цієї утиліти легко налаштувати резервне копіювання важливих даних на ваш Диск і більше не турбуватися про їхню безпеку. Файли у хмарі доступні вам з будь-якого пристрою, і ви завжди зможете відновити їх у разі поломки або втрати ноутбука.

До речі, посилання на інтегровані з Диском програми ви завжди зможете знайти в нашій Допомозі. Якщо вам відомі інші програми, що використовують диски API , напишіть нам . Ми перевіримо їх та оновимо список.
","html":"Ми часто не замислюємося про збереження файлів, поки не трапляється якийсь форс-мажор. Наприклад, забутий у кафе або випадково залитий кавою ноутбук. Існує безліч способів убезпечити дані від випадкової втрати, але розібратися в них часом може тільки спеціаліст.","contentType":"text/html"),"proposedPreview":("source":"Ми часто не замислюємося про збереження файлів, поки Існує безліч способів убезпечити дані від випадкової втрати, але розібратися в них іноді може тільки фахівець.

Нова безкоштовна версія Handy Backup для Windows, інтегрована з Яндекс.Диском, зробить усю роботу за вас. За допомогою цієї утиліти легко налаштувати резервне копіювання важливих даних на ваш Диск і більше не турбуватися про їхню безпеку. Файли у хмарі доступні вам з будь-якого пристрою, і ви завжди зможете відновити їх у разі поломки або втрати ноутбука.

До речі, посилання на інтегровані з Диском програми ви завжди зможете знайти в нашій Допомозі. Якщо вам відомі інші програми, що використовують диски API , напишіть нам . Ми перевіримо їх та оновимо список.
","html":"Ми часто не замислюємося про збереження файлів, поки не трапляється якийсь форс-мажор. Наприклад, забутий у кафе або випадково залитий кавою ноутбук. Існує безліч способів убезпечити дані від випадкової втрати, але розібратися в них часом може тільки спеціаліст.","contentType":"text/html"),"titleImage":null,"tags":[("displayName":"Windows" ,"slug":"windows","categoryId":"150632282","url":"/blog/disk??tag=windows"),("displayName":"бекап","slug":"bekap" ,"categoryId":"151512312","url":"/blog/disk??tag=bekap"),("displayName":"Програми та програми","slug":"programmy-i-prilozheniya"," categoryId":"150632343","url":"/blog/disk??tag=programmy-i-prilozheniya"),("displayName":"Новини","slug":"novosti","categoryId":" 150632287","url":"/blog/disk??tag=novosti")],"isModerator":false,"url":"/blog/disk/841","urlTemplate":"/blog/disk/ %slug%","fullBlogUrl":"https://yandex.ru/blog/disk","addCommentUrl":"/blog/createComment/disk/841","updateCommentUrl":"/blog/updateComment/disk/ 841","addCommentWithCaptcha":"/blog/createWithCaptcha/disk/841","changeCaptchaUrl":"/blog/api/captcha/new","putImageUrl":"/blog/image/put","urlBlog": "/blog/disk","url EditPost":"/blog/56a9e81cdcd7051109596aee/edit","urlSlug":"/blog/post/generateSlug","urlPublishPost":"/blog/56a9e81cdcd7051109596aee/publish","urlUnpublishPost":"/blog/56a9e81cdcd7051109596aee/unpublish" ,"urlRemovePost":"/blog/56a9e81cdcd7051109596aee/removePost","urlDraft":"/blog/disk/841/draft","urlDraftTemplate":"/blog/disk/%slug%d "/blog/56a9e81cdcd7051109596aee/removeDraft","urlTagSuggest":"/blog/api/suggest/disk","urlAfterDelete":"/blog/disk","isAuthor":false,"sub /subscribe/56a9e81cdcd7051109596aee","unsubscribeUrl":"/blog/api/unsubscribe/56a9e81cdcd7051109596aee","urlEditPostPage":"/blog/disk/56a9e81cdcd7051109596aee/edit","urlForTranslate":"/blog/post/translate"," urlLoadTranslate":"/blog/post/loadTranslate","urlTranslationStatus":"/blog/disk/841/translationStatus","urlRelatedArticles":"/blog/api/relatedArticles/disk/841","ampUrl":"https ://blog.yandex.net/amp/uk/disk/841","author":("id":"185828634","uid":("value":"185828634","lite":fal se,"hosted":false),"aliases":(),"login":"disk-blog","display_name":("name":"disk-blog","avatar":("default": "20706/185828634-18294593","empty":false)),"address":" [email protected]","imageSrc":"https://yapic.yandex.ru/get/185828634/islands-middle","isYandexStaff":false),"originalModificationDate":"2013-06-18T08:01:54.000Z", "socialImage":("orig":("fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/file_1453996106397/orig")))))">

Не буду описувати всіх принад, що надаються Яндекс.Диском, всі їх знають... І одна з них - можливість організації резервного копіювання VPS на Диск Яндекса. Сервер у мене працює на Debian, ось його ми розглянемо. Як водиться, щоб не забути!
Власне бекап я налаштував вже більше року тому, але недавно щось ламалося і мені знову довелося збирати по крихтах інфу про налаштування оного. Статей і відомостей корисних багато, але так щоб "все і відразу", каюся, не знайшов. Тому і пишу, акумулюю все в одному місці, так би мовити собі, а може і ще комусь пригодиться. Про причини поломки нижче, я її обчислив, але зараз про налаштування-установки...
1. Копіювання файлів на Я.Диск відбуватиметься за протоколом WebDAV і перше, що нам треба зробити на нашому сервері – встановити утиліту davfs2
# apt-get install davfs2
2. Створюємо точку монтування, а простіше сказати папку на нашому сервері, куди "звалюватимуться" наші бекапи, в моєму випадку це: mnt/yandex.disk
# mkdir /mnt/yandex.disk
3. Щоб кожен раз не вводити руками логін і пароль від Вашого диска, збережемо їх у файлі конфігурації davfs2. Він тут: /etc/davfs2/secrets, зберігаємо так:
# echo "https://webdav.yandex.ru ВАШ_ЯНДЕКС_ЛОГІН ВАШ_ЯНДЕКС_ПАРОЛЬ" >> /etc/davfs2/secrets
4. Монтуємо диск:
# mount -t davfs https://webdav.yandex.ru/mnt/yandex.disk/
5. Перевіряємо все у нас добре:
# df -h /mnt/yandex.disk/
Якщо все зрослося, то ми повинні побачити щось приблизно таке:
Filesystem Size Used Avail Use% Mounted on
https://webdav.yandex.ru
10G 1G 10G 10% /mnt/yandex.disk
6. Щоб після перезавантаження сервера нам знову ручками все не монтувати, пишемо в файл /etc/rc.local:
sleep 120 && mount -t davfs https://webdav.yandex.ru /mnt/yandex.disk
Пишемо вище рядка з exit 0. Число 120 - це затримка виконання в секундах. У принципі значення можна встановити як менше, так і більше ... У мене ось двох-хвилинна затримка перед монтуванням, щоб все вже точно завантажилося.
Після монтування папка /mnt/yandex.disk буде синхронізуватися з Яндекс.Диском і нам залишиться налаштувати бекапи на сервері, а саме, щоб вони зберігалися в папку /mnt/yandex.disk... Але це вже тема для іншої статті. ..) З цим все!..

Аж ні, не все...

Пам'ятаєте на початку статті я згадав про «щось поламалося»... А зламалася, як з'ясувалося FUSE. Чи то при оновленні ядра, чи то ще чомусь, але поламалася. У результаті при монтуванні я отримував "/sbin/mount.davfs: no free coda device to mount" і бла-бла-бла ще пару рядків так само. FUSE у мене була присутня, але не запускалася. Запустив:
# modprobe fuse
Однак після перезавантаження VPS її знову доводилося запускати вручну. Можна звичайно перезбирати ядро ​​або зробити простіше, додавши в кінець файлу /etc/initramfs-tools/modules: fuse
Або ще простіше:
# echo "fuse" >> /etc/modules
Цей рецепт із Хабра у мене заробив.
Тепер все. У тому сенсі, що все OK!

- Зручне, функціональне і дешеве рішення. Handy Backup дозволяє уникнути використання популярного інтерфейсу WebDAV для Яндекс.Диска, використовуючи замість нього прямий доступ.

Автоматичне резервне копіювання на Яндекс.Диск

За допомогою Handy Backup ви можете виконувати бекап на Яндекс.Диск для будь-яких даних автоматичному режимі, за розкладом з інтервалами від місяців до хвилин або за подією, а також вручну. Ви можете автоматизувати копіювання будь-яких даних, таких як:


Дані користувача:

  • Файли та папки (з можливістю пошуку по масці імені)
  • Бібліотеки Windows, папки користувача
  • Microsoft Outlook, файли та папки інших поштових клієнтів

Серверні типи даних:

  • Бази даних MS SQL, MySQL, MariaDB, PostgreSQL, Oracle, IBM DB2, Lotus Notes
  • Microsoft Exchange
  • Контент FTP, SFTP або FTPS серверів із шифруванням за SSL/TLS
  • Веб-сайти (статичний та динамічний контент)


Віртуальні машини та сховища:

  • Hyper-V, VMware
  • Сервери, масиви та хости віртуальних машин
  • Хмари Google Диск, Dropbox, Amazon S3, OneDrive, Box, 4shared та інші
  • Будь-які хмари за інтерфейсом WebDAV

Інші типи даних:

  • Образи дисків
  • Дані 1С у файловій та SQL-версіях, для 1С 7.7 та рішень 1С 8, наприклад, 1С 8.2
  • Файли, папки та бібліотеки мережевих машин (для мережевих рішень)
  • Реєстр Windows

Переваги рішення Handy Backup для організації бекапу на Яндекс.Диск

Захист ваших даних

Handy Backup має вбудовані засоби шифрування та стиснення даних в архів під паролем, що дозволяють безпечно передавати комерційну інформацію за відкритим мережамта зберігати її на публічному хмарному сервісі без побоювань за цілісність даних.

Сертифікація продукту

Окрім наявності офіційних сертифікатів сумісності з усіма серйозними комерційними рішеннями, переліченими у списку, рішення Handy Backup також внесено до Єдиний реєстр російського програмного забезпеченнядля ЕОМ.


Відкрите зберігання копій у вихідних форматах

По контрасту з надійним захистом, що надається засобами шифрування та стиснення, Handy Backup створює резервні копіїіз збереженням вихідного формату файлів. Це дозволяє переглядати, редагувати та навіть відновлювати бекапи як звичайні файли.


завантажити

Придбати!

Версія 7.9.4 від 15 вересня 2017 року. 66.1 MB
Програма резервного копіювання Handy Backup. 7400 RUBза ліцензію

Рішення Office Expert дозволяє копіювати будь-які типи даних з одного комп'ютера на Яндекс.Диск автоматично за розкладом, як безпосередньо, так і WebDAV. Безкоштовний пробний період 30 днів!

Як створити завдання резервного копіювання на Яндекс.Диск Handy Backup?

Замість застарілого WebDAV бекапу на Яндекс.Диск для організації резервного копіювання тепер застосовується новий плагін Handy Backup Yandex Disk з доступом до хмарному сервісучерез інтерфейс RestAPI Щоб скористатися ним, виконайте такі дії:

  1. Відкрийте Handy Backup та створіть нове завдання за допомогою кнопки на панелі або меню.
  2. Виберіть завдання резервного копіювання.
  3. Перейдіть до Кроку 2та виберіть потрібні дані для створення резервної копії.
  4. На Кроку 3виберіть у списку сховищ плагін Yandex.Disk, клацніть двічі.


  1. У вікні, що відкрилося, двічі клацніть "Нова конфігурація". Відкриється новий діалог.

  1. Натисніть кнопку “Підключитися до Yandex.Disk”. Ви будете перенаправлені до браузера.
  2. У вікні браузера введіть логін та пароль для доступудо Яндекс.Діску. Підтвердьте вибір.


  1. Поверніться у вікно Handy Backup та виберіть створену конфігурацію.
  2. Далі продовжуйте налаштовувати завдання як завжди. На Кроку 6вкажіть розклад.
  3. На останньому кроці дайте вашому завданню ім'я та завершіть роботу майстра створення задач.

Ваше завдання автоматичного резервного копіювання на Яндекс.Диск готове до виконання, і надалі запускатиметься із заданою періодичністю в заданий час. Ви можете також будь-якої миті запустити її вручну.

Зауваження:так само створюються завдання для копіювання даних в інші хмарні послуги: Google Drive, Dropbox, Microsoft OneDrive, Amazon S3, Box і так далі.

Відеоурок про резервне копіювання Яндекс Диска

У даному відеоуроці розглянуто інструкцію з резервного копіювання на Яндекс Диск, а також по бекапу даних, що зберігаються в даній хмарі.

Увага:Дана відео інструкція заснована на припущенні, що програмне забезпечення Handy Backup вже встановлено на комп'ютері. Якщо це не так, будь ласка, скачайте та встановіть Handy Backup перед тим як почати навчання відповідно до відеоуроку.

Резервне копіювання на Яндекс.Диск через WebDAV

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

Handy Backup повністю підтримує резервне копіювання на Яндекс.Диск за протоколом WebDAV.

  • Щоб скористатися WebDAV для доступу до Яндекс.Диска, виберіть плагін WebDAV на Кроку 3, користуючись вищеописаним алгоритмом створення завдання. У діалоговому вікні конфігурації WebDAV введіть параметри доступу до Яндекс.Диска.

Увага:при використанні WebDAB бекап на Яндекс.Диск може виявитися дещо повільнішим, ніж при прямому доступі. Наприклад, резервне копіювання 1С на Яндекс.Диск зазвичай займає значний час при використанні WebDAV.

Автоматичний бекап на Яндекс.Диск за допомогою Handy Backup став ще простіше та швидше з впровадженням нового інструменту, що використовує прямий доступ до хмарного сервісу Яндекс. Спробуйте його самостійно, завантаживши безкоштовну 30-денну пробну версію!

Ні для кого не секрет, для чого потрібно робити резервне копіювання. Наприклад, веб-розробнику буде зручно робити резервні копії, якщо в процесі розробки він непомітно для себе зробить помилку, а через кілька годин помилка "спливе" на поверхню і на пошуки та усунення помилки часу зовсім не залишилося. Звичайно, Vscale має систему резервного копіювання, але вона передбачає тільки копіювання даних всього сервера повністю. Та й можливість відновлення з резервної копії доступна лише на тому сервері, з якого було зроблено копію. Така можливість не зовсім відповідає потребам умовного веб-розробника. Однак, зараз у світі добре розвинулася "хмарна" тенденція: хмарний хостинг, хмарна VPS, хмарне зберіганняданих і таке інше. У цьому посібнику ми розповімо, як настроїти хмарне зберігання резервних копій. Допоможе нам у цьому Яндекс.Діск.

Технічні вимоги

  • Ubuntu 16.04
  • Аккаунт в Яндексі (він загальний для Я. Пошти, Я. Денег та Я. Диска)

Крок 1. Встановлення та налаштування консольного клієнта Яндекс

Приступимо до встановлення ключового компонента – клієнта для Я.Діска. Оскільки в стандартному спискурепозиторіїв відсутній пакет із клієнтом Я.Діска, доведеться додати репозиторій вручну, після чого оновити індекс пакетів і лише потім встановити пакет із клієнтом. На сайті Я.Діска представлений список потрібних команд в одному рядку:

echo "deb http://repo.yandex.ru/yandex-disk/deb/ stable main"| sudo tee -a /etc/apt/sources.list .d/yandex.list > /dev/null && wget http: //repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG -O- | sudo apt-key add - && sudo apt-get update && sudo apt-get install -y yandex-disk

Яндекс-клієнт успішно встановлений, і можна приступати до налаштування. В Яндексі подбали про те, щоб клієнт працював із конфігураційними файлами щонайменше і додали можливість налаштувати все однією командою:

Yandex-disk setup

Порядок роботи представленої вище команди:

  1. Чи використовувати проксі-сервер? (y/n)
  2. Вхід до свого облікового запису (введення логіна та пароля)
  3. Яку папку використовувати для локального зберіганняфайлів? (Залишіть поле порожнім і програма створить папку Yandex.Diskв домашньому каталозі(для Ubuntu це /root/). Врахуйте, що після підтвердження дії має пройти якийсь час, поки клієнт синхронізує файли у хмарі ні на сервері)
  4. Чи бажаєте ви запускати Я.Діск при запуску системи? (y/n)

Автозапуск Я.Діска увімкніть обов'язково, а інші пункти можете налаштовувати на свій розсуд. На цьому налаштування можна вважати завершеним.

Крок 2. Створення та настроювання резервної копії

Щоб створити резервну копію, потрібно використовувати безліч команд. Допомогти в цьому може python або perl, але найзручніше це робити за допомогою bash. Він простий та зручний у використанні та безпосередньо взаємодіє з консоллю. Створіть bash-скрипт:

Nano /var/backup.sh

Вставте в нього наступний код:

SERVER_PATH="/var/www/html"
cur_date=`date +%Y-%m-%d`
filename="backup-"$cur_date".tar.bz2"

tar -cjf $filename $SERVER_PATH

if [-f $filename]; then
mv $filename /root/Yandex.Disk/backup/
yandex-disk sync
fi

Збережіть файл поєднанням клавіш Ctrl+O, підтвердіть дію клавішами Enterта закрийте файл поєднанням клавіш Ctrl+X. Обов'язково призначте права доступу до файлу, щоб мати доступ до системних команд (створення та переміщення папок, доступ до каталогів):

Cd /var
chmod -R 755 * backup.sh

Коротко про те, що робить скрипт:

  1. Створює архів із вмістом папки /var/www/html/ у тій папці, де розміщено сам скрипт;
  2. Дає архіву із резервною копією ім'я виду backup-2015-11-25.tar.bz2;
  3. Завантажує резервну копію на Я.Діск до папки /backup/.

Перевірити, чи працює скрипт, можна за допомогою наступної команди:

Cd /var && ./backup.sh

В результаті виконання команди архів буде завантажено у хмарне сховище.

Крок 3. Автоматизація створення резервної копії

Наступним та завершальним кроком буде додавання скрипта до планувальника завдань. Допоможе нам у цьому crontab. Відкрийте список запланованих завдань:

Crontab-e

До кінця додайте рядок:

0 0 * * * /var/backup.sh

Тепер Crontab запускатиме скрипт щодня опівночі. На цьому налаштування автоматичного створення резервної копії завершено.

Висновок

Ви успішно налаштували автоматичне створення резервної копії для директорії з вашим веб-сайтом. Це дуже корисний алгоритм, що дозволяє уникнути втрати резервної копії в тому випадку, якби вона зберігалася на самому сервері. За таким же принципом можна робити і резервні копії конфігураційних файлів. В цілому хмарні технологіїхороші тим, що забезпечують високу доступність та безпеку зберігання особистих даних. Вибір на користь хмари – це добрий вибір.

Викладати бекапи проектів (сайтів) на Яндекс.Диск може знадобитися з кількох причин, наприклад, через брак місця на сервері (хостингу, VDS, VPS) або підвищення безпеки зберігання бекапів (на випадок, якщо сервер без рейду і він вийде з ладу).

У зв'язку з цим я написав для себе і вирішив викласти для інших невеликий bash-скрипт для бекапа на Яндекс.Діск. Функції скрипта:
- Створення на сервері бекапа проектів (файлів + баз даних MySQL);
— Авторизація на Яндекс.Диску як додаток (за токеном, більше безпечний спосіб, Чим використання логіну та паролю);
- Відправлення бекапів із сервера на Яндекс.Діск;
— Видалення старих бекапів з Яндекс.Диска для економії місця (налаштовується максимальна кількість бекапів, що зберігаються);
— Запис та надсилання лога на e-mail (налаштовується).

Для того, щоб скористатися скриптом, необхідно спочатку отримати токен від Яндекс.Діска. Приступимо.

1. Логінем на Яндексі під акаунтом, на диск якого робитимемо бекап, заходимо на oauth.yandex.ru і натискаємо «Зареєструвати новий додаток».

2. Заповнюємо назву програми (наприклад, «backup») та видаємо потрібні права у розділі «Яндекс.Диск REST API», а саме: «Доступ до інформації про Диск» та «Доступ до папки програми на Диск».


Нижче на тій же сторінці під полем Callback URL натискаємо «підставити URL для розробки» і натискаємо «Зберегти»:


3. Після збереження параметрів програми нас перенаправлять на сторінку з даними про програму:


4. Тепер отримаємо сам токен (якщо хочете, можете почитати докладніше про це в мануалі Яндекса), для цього копіюємо ID, підставляємо в кінець URL https://oauth.yandex.ru/authorize?response_type=token&client_id= , переходимо за адресою та підтверджуємо видачу дозволів додатку:


У результаті на сторінці буде відображено токен, який видається не менше, ніж на 1 рік, тому якщо скрипт бекапа раптом перестане працювати, ми зможемо отримати новий токет та підставити його у скрипт. Протестувати можливості роботи з Яндекс.Диском, використовуючи отриманий токен, можна на спеціальному полігоні.

А тепер сам bash-скрипт для бекапа на Яндекс.Діск:

#!/bin/bash # # Yandex.Disk backup script v1.0 by Sergey Lukonin (neblog.info) # # # # # # # # # # # # НАЛАШТУВАННЯ БЕКАПА MYSQL # # # # # # # # # # # # # Сервер БД MYSQL_SERVER=mysql.some-server.ru # Користувач, під яким будемо робити бекап доступних баз, руту mysql зазвичай доступні всі БД, окремому користувачу зазвичай доступна БД конкретного проекту MYSQL_USER=some-user # Пароль користувача бази даних (Пароль від рута сервера і від рута mysql різні не плутайте) MYSQL_PASSWORD=some-password ########## Диску бекапів (0 - зберігати всі бекапи): MAX_BACKUPS="14" # Дата, використовується в іменах архівів DATE=`date "+%Y-%m-%d"` # Директорії для архівації (вказуються через пробіл), які будуть поміщені в єдиний архів і відправлені на Яндекс.Диск DIRS="/home/www/projects/neblog" # Yandex.Disk токен (як отримати - див. на neblog.info) дір векторії, вказаної в $BACKUP_DIR LOGFILE="backup.log" # E-mail для надсилання результату виконання скрипта. Залиште порожнім, якщо надсилати результати не потрібно. sendLog=" [email protected] " # Відправляти тільки помилки (true). Вкажіть false, якщо потрібно відправляти логи при будь-якому результаті виконання скрипта. # # # # # # # # # # ДАЛІ НІЧОГО НЕ МЕНЯЄМО! # # # # # # # # # # # function mailing() ( if [ ! ], якщо echo "$1" | grep -q "error" then echo "$2" | /dev/null fi fi ) function logger() ( echo "["`date "+%Y-%m-%d %H:%M:%S"`"] File $BACKUP_DIR: $1" >> $BACKUP_DIR /$LOGFILE ) function parseJson() ( local output regex="(\"$1\":[\"]?)([^\",\)]+)([\"]?)" [[ $2 = ~ $regex ]] && output=$(BASH_REMATCH) echo $output ) function checkError() ( echo $(parseJson "error" "$1") ) function getUploadUrl() ( json_out=`curl -s -H "Authorization: OAuth $TOKEN" https://cloud-api.yandex.net:443/v1/disk/resources/upload/?path=app:/$backupName&overwrite=true` json _error=$(checkError "$json_out") if [[ $json_error != "" ]]; then logger "$PROJECT - Yandex.Disk error: $json_error" mailing "$PROJECT - Yandex.Disk backup error" "ERROR copy file $FILENAME. Yandex.Disk error: $json_error" echo "" else output=$(parseJson " href" $json_out) echo $output fi ) function uploadFile ( local json_out local uploadUrl local json_error uploadUrl=$(getUploadUrl) if [[ $uploadUrl != "" ]]; then echo $UploadUrl json_ -H "Authorization: OAuth $TOKEN" $uploadUrl` json_error=$(checkError "$json_out") if [[ $json_error != "" ]]; then logger "$PROJECT - Yandex.Disk error: $json_error" mailing " $PROJECT - Yandex.Disk backup error" "ERROR copy file $FILENAME. Yandex.Disk error: $json_error" else logger "$PROJECT - Copying file to Yandex.Disk success" mailing "$PROJECT - Yandex.Disk backup success" " SUCCESS copy file $FILENAME" fi else echo "Одмінні помилки occured. : curl -s -H "Authorization: OAuth $TOKEN" "https://cloud-api.yandex.net:443/v1/disk/resources?path=app:/&sort=created&limit=100" | tr "()," "\n" | grep "name[[:graph:]]*.tar.gz" | cut -d: -f 2 | tr -d """ ) function backups_count() ( local bkps=$(backups_list | wc -l) # Якщо ми бекапимо і файли, і БД, то на 1 бекап у нас припадає 2 файли. Тому кількість бекапів = кількість файлів / 2: expr $bkps / 2 ) function remove_old_backups() ( bkps=$(backups_count) old_bkps=$((bkps - MAX_BACKUPS)) if [ "$old_bkps" -gt "0" ];then logger "Видаляємо старі бе . Диска" # Цикл видалення старих бекапів: # Виконуємо видалення першого у списку файлу 2*old_bkps раз for i in `eval echo (1..$((old_bkps * 2)))`; do curl -X DELETE -s -H " Authorization: OAuth $TOKEN" "https://cloud-api.yandex.net:443/v1/disk/resources?path=app:/$(backups_list | awk "(NR == 1)")&permanently=true" done fi ) logger "--- $PROJECT START BACKUP $DATE ---" logger "Вивантажуємо дампи баз" mkdir $BACKUP_DIR/$DATE for i in `mysql -h $MYSQL_SERVER -u $MYSQL_USER -p$MYSQL_PASSWORD -e" show databases;" | grep -v information_schema | grep -v Database`; $BACKUP_DIR/$DATE-mysql-$PROJECT.tar.gz" tar -czf $BACKUP_DIR/$DATE-mysql-$PROJECT.tar.gz $BACKUP_DIR/$DATE rm -rf $BACKUP_DIR/$DATE logger "Створюємо архів каталогів $BACKUP_DIR/$DATE-files-$PROJECT.tar.gz" tar -czf $BACKUP_DIR/$DATE-files-$PROJECT.tar.gz $DIRS FILENAME=$DATE-mysql-$PROJECT.tar.gz logger "Виграю на Яндекс.Диск архів mysql $BACKUP_DIR/$DATE-mysql-$PROJECT.tar.gz" backupName=$DATE-mysql-$PROJECT.tar.gz uploadFile $BACKUP_DIR/$DATE-mysql-$PROJECT.tar.gz FILENAME=$DATE-files-$PROJECT.tar.gz logger "Вивантажуємо на Яндекс.Диск архів із файлами $BACKUP_DIR/$DATE-files-$PROJECT.tar.gz" backupName=$DATE-files-$PROJECT.tar. gz uploadFile $BACKUP_DIR/$DATE-files-$PROJECT.tar.gz logger "Видаляємо архіви з диска" find $BACKUP_DIR -type f -name "*.gz" -exec rm "()" \; # Видаляємо старі бекапи з Яндекс.Діска (якщо MAX_BACKUPS > 0) if [ $MAX_BACKUPS -gt 0 ];then remove_old_backups; fi logger "Завершення скрипту бекапа"

Також ви можете завантажити готовий. Скрипт слід розташувати на сервері, замінити на ньому параметри на свої, дати права на запуск (chmod +x) і поставити на щоденне виконання в cron. Якщо ви плануєте виконувати кілька таких завдань, встановіть час між їх запуском (5-10 хвилин).