Как спасти осьминога от вымирания (Автобэкап OctoPrint в Яндекс диск через Rclone)
Всем доброго времени суток.
В этой статье покажу how to организовать копирование автоматически создаваемых бэкапов octoprint (и не только) на Яндекс диск посредством Rclone.
В последнее время у меня вернулся интерес к ковырянию с принтером, информации поступать стало очень много, заметки в документе-шпаргалке стали очень объемными и местами непонятными. Решил потихоньку структурировать все это дело здесь.
На статус первооткрывателя не претендую, просто делюсь своим опытом использования.
Предыстория:
Имеется у меня значит старинный вундер-принтер Sunhockey Prusa i4 с полуторакилограммовым порталом экструдера и тяжеленным дрыгостолом, (привет 2016) который долгое время стоял невостребованным, так как у него с первого года эксплуатации сломался дисплей, с флешки им больше не попечатаешь. На проводе сидеть и таскать туда-сюда принтер мене было не радостно, а что-то делать с этим лень.¯\_(ツ)_/¯
Недавно собрал яйца в кулак и у этого старика появился помощник в виде OctoPrint сервера упакованного в тв-приставку.
Так как я пока пользователь линукса исключительно уровня HOW TO, то уже не раз положил настроенную-работоспособную систему на лопатки.
О необходимости делать бэкапы естественно не вспоминаешь, пока не обделаешься))
Первым делом я пытался реализовать автобэкап посредством плагина Google Drive Backup из репозитория OctoPrint, делал все по инструкции, но там все мудрено, создается приложение через google cloud platform для взаимодействия, к тому же, ничего не заработало, не стал разбираться, снес и забыл. R.I.P.
Потом меня осенило, что можно реализовать это внешним софтом. Нахрапом естественно ничего не вышло, пришлось пол дня заниматься тем самым HOW TO собирая из десяти инструкций и сообщений на форумах что-то работоспособное.
Первой ссылкой в писке была статья о Rclone, в которой говорилось, что с его помощью можно удобно бэкапить заданные директории в облако.Софт кроссплатформенный, что в дальнейшем мне помогло в его конфигурации.
Приступим непосредственно к инструкции:
Для настройки потребуется:
- YandexDisk данные для входа в аккаунт. (лично для меня самый удобный вариант, т.к. у меня это основное хранилище)
- Windows система для получения токена от яндекс диска (думаю можно настроить все в linux, при наличии GUI и браузера, но у меня система только с CLI)
- Rclone собственно программа для синхронизации нужной директории с облаком.
Настроим автоматическое создание бэкапов в самом октопринт.
Поможет в этом плагин Backup Scheduler, который устанавливается из встроенного менеджера плагинов, описывать процесс не буду, делается в один клик, приложу скрины из менеджера и как настроено у меня:
Пока активно вношу изменения в систему, бэкап делается при старте системы и ежедневно в 00:00 часов. (прожал исключение из бэкапа загруженных заданий печати и таймлапсов, для экономии места на диске)
В дальнейшем думаю будет достаточно еженедельного и при загрузке системы.
#в linux бэкапы octoprint сохраняются в директорию пользователя:
octoprint:~/.octoprint/data/backup
#для пользователя root путь будет такой:
/home/octoprint/.octoprint/data/backup
Получаем конфиг с токеном для Rclone в Windows:
(опять же, повторюсь, возможно, для линукс систем с графическим интерфейсом и браузером - виндовс не нужен)
#Скачиваем Rclone для Windows с официального сайта
В скачанном архиве берем только файл rclone.exe кидаем его в корень диска С:\ (исключительно для удобства, ваш путь может быть любым)
Открываем командную строку CMD:
#переходим в директорию диска С
C:\Users\CAP>cd c:\
#запускаем конфигурацию Rclone
c:\>rclone config
#жмем N (new remote)
No remotes found, make a new one?n) New remotes) Set configuration password q) Quit config n/s/q>n
#задаем имя (можем быть любым)
Enter name for new remote.name> yandex
#вываливается огромный список поддерживаемых сервисов (в данный момент 56) яндекс в этом списке под номером 53
Storage> 53
Option client_id.OAuth Client Id.Leave blank normally.Enter a value. Press Enter to leave empty. client_id> #оставляем пустым просто жмем enter
Option client_secret.OAuth Client Secret.Leave blank normally.Enter a value.Press Enter to leave empty.client_secret> #оставляем пустым просто жмем enter
Edit advanced config?y) Yesn) No (default)y/n>n
Use web browser to automatically authenticate rclone with remote? * Say Y if the machine running rclone has a web browser you can use. * Say N if running rclone on a (remote) machine without web browser access.If not sure try Y. If Y failed, try N.y) Yes (default)n) Noy/n>y
#жмем "y" автоматически откроется браузер, логинимся под нужной учеткой, либо если уже залогинены просто даем разрешения на доступ приложению.
2023/12/12 19:01:43 NOTICE: If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=N4aUpxx5y2023/12/12 19:01:43 NOTICE: Log in and authorize rclone for access2023/12/12 19:01:43 NOTICE: Waiting for code...
#получаем сообщение что все okay)
#возвращаемся в командную строку получаем сообщение что токен сгенерирован, сам токен, время окончания его работы.
2023/12/12 19:08:42 NOTICE: Got codeConfiguration complete.
Options:- type: yandex- token {"access_token":"y0_AgOdZzp_D8A","token_type":"bearer","refresh_token":"1:eR2t4Rs**************vYw:2q_AHyQ","expiry":"2024-12-11T19:08:42.9959556+05:00"}
Keep this "yandex" remote?y) Yes this is OK (default)e) Edit this remoted) Delete this remotey/e/d>y
#закончили
Current remotes:Name Type==== ====yandex yandex
#все ок)) жмем "q" выходим из режима конфигурации
#командой rclone config file смотрим путь где сохранился файл с нашим токеном:
c:\>rclone config fileConfiguration file is stored at:C:\Users\CAP\AppData\Roaming\rclone\rclone.conf
#командой type открываем конфиг, нежно копируем все содержимое)
c:\>type C:\Users\CAP\AppData\Roaming\rclone\rclone.conf
[yandex]type = yandextoken {"access_token":"y0_AgA**************************OPovkAHyQ","expiry":"2024-12-11T19:08:42.9959556+05:00"}
#windows нам больше не понадобится, Rclone можно удалять))
Этап с получением токена у меня занял больше всего времени, все инструкции что мне попадались были к старым версиям софта, там и команды отличались и процесс был другой. Так же, я думал, что нужно создать приложение для взаимодействия с облаком как это было в мануале к плагину google drive backup (тот этап где нужно (не нужно) вводить client_id> и client_secret>)
Далее осталось самое простое: установить Rclone, настроить, автоматизировать))
Установим Rclone в linux:
#не забываем обновить списки пакетов из репозиториев)
octoprint@OctoBox:~$ sudo apt update
#устанавливаем Rclone
octoprint@OctoBox:~$ sudo apt install rclone
#по завершению установки смотрим путь где должен храниться файл конфигурации
octoprint@OctoBox:~$ rclone config fileConfiguration file is stored at:/home/octoprint/.config/rclone/rclone.confoctoprint@OctoBox:~$
#нежно копируем путь, создаем по нему файл конфигурации
octoprint@OctoBox:~$ nano /home/octoprint/.config/rclone/rclone.conf
#в файл вставляем (Ctrl+U) скопированный в Windows конфиг с токеном, сохраняем (Ctrl+O), подтверждаем (enter), выходим (Ctrl+X)
#получаем подтверждение Oauth и заодно доступ к диску (*после lsd указываем то имя которое указали при получении токена [yandex]) команда выведет корневой каталог директорий.
octoprint@OctoBox:~$ rclone lsd yandex:
#создаем директорию для бэкапов, например (имя можно любое)
octoprint@OctoBox:~$ rclone mkdir yandex:octobackup
#синхронизируем содержимое локального каталога(директория в которую складывает свои бэкапы octoprint) с директорией созданной нами в облаке:
octoprint@OctoBox:~$ rclone sync ~/.octoprint/data/backup yandex:octobackup
#проверяем наш успешный успех командой (ну или в браузере смотрим содержимое и радуемся проделанной работе)
octoprint@OctoBox:~$ rclone lsl yandex:octobackup 777321 2023-12-11 20:23:30.056598219 Wazzzzup-backup-20231211-202328.zip 235755 2023-12-12 00:00:06.081267319 Wazzzzup-daily-20231212-000005.zip octoprint@OctoBox:~$
#это еще не все, теперь нам нужно автоматизировать копирование каталога (кидаем все это дело в крон и дело в шляпе)
#в файл автоматизации пишем команды:
octoprint@OctoBox:~$ crontab -e
#первая команда запускает копирование директории каждый день в 00:05 *минута *час *день *месяц *день_недели ( что не нужное, просто оставляем звездочку)
5 0 * * * rclone copy ~/.octoprint/data/backup yandex:octobackup
#вторая команда запускает копирование при каждом старте системы, либо можно указать как удобно будет именно вам:## @reboot - при загрузке, только один раз;## @yearly, @annually - раз год;## @monthly - раз в месяц;## @weekly - раз в неделю;## @daily, @midnight - каждый день;## @hourly - каждый час.
@reboot rclone copy ~/.octoprint/data/backup yandex:octobackup
#используем атрибут copy вместо sync по причине того, что при синхронизации, если из локальной директории файлы удалить, то они удалятся и с директории на облаке, а при копировании сравнивается содержимое каталогов и загружаются только те фалы, которые отсутствуют в облаке.
#сохраняем (Ctrl+O), подтверждаем (enter), выходим (Ctrl+X)
На этом инструкция заканчивается, надуюсь она получилась, понятной, подробной и не нудной.
Всех обнял, покружил и на место поставил.
Всем рабочих и стабильных систем, счастья, любви, бобра и ласки))
пы.сы. Это моя первая статья, не кусайтесь)
Еще больше интересных статей
Решение проблемы исправления кривизны стола Creality K1 Max
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Прошивка klipper на FlyingBear Ghost 4s с мозгами на stm32
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Расскажите о принципах работы при прошивке stm32f103...
Blue Pill & SSD1306, ну очень маленькие.., но 32 бит!
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Решил я тут попробовать перейти с 8 бит на 32.
Готовы...
Комментарии и вопросы
Предположу, что на разборке эт...
Спасибо) руки, наконец, дошли)...
Как без термопасты и шестигран...
Всем привет, воюю с кубом из P...
Постоянно плавится и засыхает...
Всем привет, воюю с кубом из P...
ПриветствуюТут немного выпал и...