Backup Ардуино IDE

Из-за нестабильного питания глюкнула винда. Решил переустановить.

Все данные пришлось вручную переносить на другой диск. Затем восстанавливать.

Решил сделать атоматический бэкап. С файликом для ардуинки решил поделится.

Ой. Этот тип файлов неподдерживается. Придётся вставлять код напрямую.

@echo off
title Arduino Full Backup

echo ===== Cleaning temporary files =====

del /f /s /q "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Recent\*" >nul 2>&1
del /f /s /q "%USERPROFILE%\AppData\Local\Temp\*" >nul 2>&1
del /f /s /q "%USERPROFILE%\AppData\Local\Arduino15\staging\libraries\*" >nul 2>&1
del /f /s /q "%USERPROFILE%\AppData\Local\Arduino15\staging\packages\*" >nul 2>&1
del /f /s /q "%USERPROFILE%\.arduinoIDE\workspace-storage\*" >nul 2>&1
del /f /s /q "%USERPROFILE%\.arduinoIDE\logs\*" >nul 2>&1

echo.
echo ===== Arduino Sketch Backup =====

robocopy "C:\Users\%USERNAME%\Documents\Arduino" ^
         "D:\Arduino\Arduino" ^
         /MIR /FFT /MT:16 /R:2 /W:2 ^
         /XD build .git

echo.
echo ===== ArduinoData Backup =====

robocopy "C:\Users\%USERNAME%\Documents\ArduinoData" ^
         "D:\Arduino\ArduinoData" ^
         /MIR /FFT /MT:16 /R:2 /W:2

echo.
echo ===== Arduino Core Backup (Arduino15) =====

robocopy "%LOCALAPPDATA%\Arduino15" ^
         "D:\Arduino\Arduino15" ^
         /MIR /FFT /MT:16 /R:2 /W:2

echo.
echo ===== Arduino IDE Settings =====

robocopy "%USERPROFILE%\.arduinoIDE" ^
         "D:\Arduino\.arduinoIDE" ^
         /MIR /FFT /MT:16 /R:2 /W:2

echo.
echo ===== Arduino IDE Program Backup =====

robocopy "%LOCALAPPDATA%\Programs\Arduino IDE" ^
         "D:\Arduino\Arduino IDE Program" ^
         /MIR /FFT /MT:16 /R:2 /W:2

echo.
echo ===== BACKUP FINISHED =====

exit

Создайте текстовый файл со своим названием, а потом замените расширение на .BAT

У меня стоит задание на бэкап при запуске винды.

Работает на 10 и 11 винде.

Ну и ещё один напиши, чтобы «из бэкапа разворачивал» на нужные места.

Замечания:

  1. Путь «куда бэкапить» нужно вынести как переменную вверх скрипта, чтобы было удобнее это место менять.
  2. Результат работы скрипта (в том числе вывод del и robocopy) лучше перенаправлять в .log-файл (чтобы «если что» можно было проанализировать). Имя log-файла: дата+время.log (например)
  3. Ещё, например, после завершения работы основного скрипта можно анализировать log-файл и при «пустом файле» или содержащим ключевые слова типа “warning” или “error” - сообщать о проблеме.

Это то, что «бросилось в глаза»…

ЗЫ: У меня, например, просто весь диск с ОС бэкапится средствами Veeam Agent…

1 лайк

Есть такая архиполезная программа APBackUP.
Я купил её в далёком 2016 году.
В эту программу вводится набор заданий. В задании прописываются: источник архивации, сохранение ZIP-архива и многое - многое другое. Архив можно сохранять в три места, можно задать шаблон имени архива так, чтобы в имени архива прописывалать дата создания, можно задавать цепочку заданий. В архиве хранятся пути архивируемых файлов.

“Модемное соединение” - это сурово! :slightly_smiling_face:

1 лайк

1045е задание. Охренеть! Вот это я понимаю “дотошный”… :smiley:

1 лайк

Задания нумеруются автоматически при добавлении. Если список заданий ещё пустой, то первому заданию присваивается номер 1001. Номер задания можно менять, но не из программы, а в специальном файле конфигурации, в котором хранятся настройки заданий. Номера заданий нужны, если пользоваться механизом цепочек заданий.

В файле заданий на описание каждого задания выделяется примерно 163 строки. Вот некоторые начальные строки строки:

[1045]
IsNewDS2008=1
Serv_PID=5244
Serv_WriteStamp=06/03/2026 10:45:15
Serv_verInfo=3.7.5768
SourceOld=
FileSourceMask=C:\Users\DomRodnoi\AppData\Local\Arduino15\*.*
...
...
...

В одном задании можно указывать несколько путей - источников архивации:

c:\POST_354\*.xls;c:\POST_354\*.xlsx;D:\ZALIWKA\*.xls;D:\ZALIWKA\*.xlsx

Очень удобно то, что, например, вот этот фрагмент: c:\POST_354\*.xls заставляет архиватор архивировать все xls - файлы, которые находятся не только в папке POST_354, но и во всех её дочерних папках.