суббота, 6 апреля 2019 г.

Backup файловых баз 1С windows на yandex диск

Файлы
Как удалять файлы старше 10 дней на windows
Лучший и самый надежный способ использование
Диск 3.0 для Windows
Работа с 7zip из командной строки
How to write error status for command line 7-zip in variable (or, instead, in text file)


В отличие от webdav автомтически решается задача, обрывов, медленных линий и т.п.

Оборотной стороной является необходимость синхронизировать всю папку с архивными копиями. Но проблему места можно красиво решить, зная что удаленные файлы хранятся в корзине 90 дней, затем удаляютя. То есть на yandex disk будет хранится последняя копия, предыдущее нужно восстановить из корзины и скачать по webdav.
Тарифа 100 Гб  yandex disk для наших целей вполне достаточно.
Альтернативно можно использовать https://mega.nz/sync

Отличный webdav клиент carotdav

С помощью браузера можно загрузить файлы любого размера до 50 ГБ.
Но мы рекомендуем использовать carotdav для скачиванвания резервной копий более 2 Gb

Нам понадобится консольный 7zip

7z1900-extra.7z

Иеем :
d:\base_1c - папка с базами 1с
d:\yandex_disk  - папка синхронизированная  с yandex disk, каждый день очищаем скриптом
name_work - имя архива задачи и т.п.
set pass_for_archive - пароль архива лучше взять побольше на практике до 4000 символов

Сам скрипт backup.bat устанавливаем в планировщик, запускается один раз в день при включении компьютера:

Рабочий проверенный вариант:

@echo off
REM путь к папке где лежат базы 1С , если русскими буквами имя папки DOS dir /x
set day=30
set name_work=backup
set base_dir=D:\1CBases
set pass_for_archive=VZZETcB1eItOc4HU1RQljWqSeymsM6ZVenvXObU1F5oKM3GLTr96K
set backup_dir=d:\backup
set backup_filename=%backup_dir%\%name_work%_%date:~-4%_%date:~3,2%_%date:~0,2%.7z
set log_filename=%backup_dir%\%name_work%_%date:~-4%_%date:~3,2%_%date:~0,2%.log
echo %backup_filename%
rem del /F /Q %backup_dir%\
forfiles /p %backup_dir% /m *.7z /s /d -%day% /c "cmd /c del @path /q"
rem 7za.exe a %backup_filename% -mmt8 -mx1 -t7z -xr!*.lgd -xr!*.log -xr!*.lgf -xr!*.lgp -xr!*.zip -v2000m %base_dir%\* -p%pass_for_archive% >%log_filename% 2>&1
CALL 7za.exe a %backup_filename% -mmt8 -mx1 -t7z -xr!*.lgd -xr!*.log -xr!*.lgf -xr!*.lgp -xr!*.zip -v2000m -bso1 %base_dir%\* >%log_filename% 2>&1


Тоже самое:
  
@echo off
REM скрипт архивирующий целиком папку с базами 1с
REM BASEDIR путь к папке где лежат базы 1С , если русскими буквами имя папки DOS dir /x
SET BASEDIR=D:\1CBases
REM SET BASEDIR=c:\V8
REM BACKUPDIR путь к папке куда будем складывать backup
SET BACKUPDIR=d:\backup
REM удаление архивов старше DAY дней
SET DAY=30
REM del /F /Q "%BACKUPDIR%"\
forfiles /p %BACKUPDIR% /m *.7z /s /d -%DAY% /c "cmd /c del @path /q"
REM PASSWORD пароль для архива
REM SET PASSWORD=VZZETcB1eItOc4HU1RQljWqSeymsM6ZVenvXObU1F5oKM3GLTr96K
REM пароль до 20 символов совместим с rar
SET PASSWORD=VZZETcB1eI
REM NAME имя файла с архивом
SET NAME=backup
SET FILENAME=%BACKUPDIR%\%NAME%_%date:~-4%_%date:~3,2%_%date:~0,2%.7z
SET LOG=%BACKUPDIR%\%NAME%_%date:~-4%_%date:~3,2%_%date:~0,2%.log
ECHO %LOG%
REM CALL 7za.exe a %FILENAME% -mmt8 -mx1 -t7z -xr!*.lgd -xr!*.log -xr!*.lgf -xr!*.lgp -xr!*.zip -v2000m %BASEDIR%\*  -p%PASSWORD% >%LOG% 2>&1
CALL 7za.exe a %FILENAME% -mmt8 -mx1 -t7z -xr!*.lgd -xr!*.log -xr!*.lgf -xr!*.lgp -xr!*.zip -v2000m -bso1 %BASEDIR%\* >%LOG% 2>&1
pause 10

Другой вариант реального скрипта с описанием отдельных баз:

@echo off
REM скрипт архивирующий отдельные базы в папке базами 1с
REM BASEDIR путь к папке где лежат базы 1С , если русскими буквами имя папки DOS dir /x
REM set BASEDIR=d:\base_1c
SET BASEDIR=D:\1CBases
REM BACKUPDIR путь к папке куда будем складывать backup
SET BACKUPDIR=d:\backup
REM удаление архивов старше DAY дней
SET DAY=30
REM del /F /Q "%BACKUPDIR%"\
forfiles /p %BACKUPDIR% /m *.7z /s /d -%DAY% /c "cmd /c del @path /q"
REM PASSWORD пароль для архива
REM SET PASSWORD=VZZETcB1eItOc4HU1RQljWqSeymsM6ZVenvXObU1F5oKM3GLTr96K
REM пароль до 20 символов совместим с rar
SET PASSWORD=VZZETcB1eI
REM =================================================================
REM ЗП КАМИН ТГ восст 15.01.19
SET BASE=1501~2.19
REM NAME имя файла с архивом
SET NAME=zptg
REM DIR папка в BASEDIR конкретной базы NAME
SET DIR=%BASEDIR%\%BASE%
SET FILENAME=%BACKUPDIR%\%NAME%_%date:~-4%_%date:~3,2%_%date:~0,2%.7z
SET LOG=%BACKUPDIR%\%NAME%_%date:~-4%_%date:~3,2%_%date:~0,2%.log
REM 7za.exe a %FILENAME% -r -mmt4 -mx1 -t7z -x!*.lgd -x!*.log %DIR%\* -p%PASSWORD%
REM CALL 7za.exe a %FILENAME% -mmt8 -mx1 -t7z -xr!*.lgd -xr!*.log -xr!*.lgf -xr!*.lgp -xr!*.zip -v2000m %DIR%\*  -p%PASSWORD% >%LOG% 2>&1
CALL 7za.exe a %FILENAME% -mmt8 -mx1 -t7z -xr!*.lgd -xr!*.log -xr!*.lgf -xr!*.lgp -xr!*.zip -v2000m -bso1 %DIR%\* >%LOG% 2>&1
REM =================================================================
REM ЗП Камин ПР восст 15.01.19
SET BASE=1501~1.19
REM NAME имя файла с архивом
SET NAME=zppr
REM DIR папка в BASEDIR конкретной базы NAME
SET DIR=%BASEDIR%\%BASE%
SET FILENAME=%BACKUPDIR%\%NAME%_%date:~-4%_%date:~3,2%_%date:~0,2%.7z
SET LOG=%BACKUPDIR%\%NAME%_%date:~-4%_%date:~3,2%_%date:~0,2%.log
REM 7za.exe a %FILENAME% -r -mmt4 -mx1 -t7z -x!*.lgd -x!*.log %DIR%\* -p%PASSWORD%
REM CALL 7za.exe a %FILENAME% -mmt8 -mx1 -t7z -xr!*.lgd -xr!*.log -xr!*.lgf -xr!*.lgp -xr!*.zip -v2000m %DIR%\*  -p%PASSWORD% >%LOG% 2>&1
CALL 7za.exe a %FILENAME% -mmt8 -mx1 -t7z -xr!*.lgd -xr!*.log -xr!*.lgf -xr!*.lgp -xr!*.zip -v2000m -bso1 %DIR%\* >%LOG% 2>&1
REM =================================================================
REM БУХ Остр
SET BASE=465C~1
REM NAME имя файла с архивом
SET NAME=buhostr
REM DIR папка в BASEDIR конкретной базы NAME
SET DIR=%BASEDIR%\%BASE%
SET FILENAME=%BACKUPDIR%\%NAME%_%date:~-4%_%date:~3,2%_%date:~0,2%.7z
SET LOG=%BACKUPDIR%\%NAME%_%date:~-4%_%date:~3,2%_%date:~0,2%.log
REM 7za.exe a %FILENAME% -r -mmt4 -mx1 -t7z -x!*.lgd -x!*.log %DIR%\* -p%PASSWORD%
REM CALL 7za.exe a %FILENAME% -mmt8 -mx1 -t7z -xr!*.lgd -xr!*.log -xr!*.lgf -xr!*.lgp -xr!*.zip -v2000m %DIR%\*  -p%PASSWORD% >%LOG% 2>&1
CALL 7za.exe a %FILENAME% -mmt8 -mx1 -t7z -xr!*.lgd -xr!*.log -xr!*.lgf -xr!*.lgp -xr!*.zip -v2000m -bso1 %DIR%\* >%LOG% 2>&1
REM =================================================================
REM БУХ Проп
SET BASE=838BB~1.2
REM NAME имя файла с архивом
SET NAME=buhprop
REM DIR папка в BASEDIR конкретной базы NAME
SET DIR=%BASEDIR%\%BASE%
SET FILENAME=%BACKUPDIR%\%NAME%_%date:~-4%_%date:~3,2%_%date:~0,2%.7z
SET LOG=%BACKUPDIR%\%NAME%_%date:~-4%_%date:~3,2%_%date:~0,2%.log
REM 7za.exe a %FILENAME% -r -mmt4 -mx1 -t7z -x!*.lgd -x!*.log %DIR%\* -p%PASSWORD%
REM CALL 7za.exe a %FILENAME% -mmt8 -mx1 -t7z -xr!*.lgd -xr!*.log -xr!*.lgf -xr!*.lgp -xr!*.zip -v2000m %DIR%\*  -p%PASSWORD% >%LOG% 2>&1
CALL 7za.exe a %FILENAME% -mmt8 -mx1 -t7z -xr!*.lgd -xr!*.log -xr!*.lgf -xr!*.lgp -xr!*.zip -v2000m -bso1 %DIR%\* >%LOG% 2>&1
REM =================================================================
REM БУХ ПТРАНС
SET BASE=85277~1.2
REM NAME имя файла с архивом
SET NAME=buhptrans
REM DIR папка в BASEDIR конкретной базы NAME
SET DIR=%BASEDIR%\%BASE%
SET FILENAME=%BACKUPDIR%\%NAME%_%date:~-4%_%date:~3,2%_%date:~0,2%.7z
SET LOG=%BACKUPDIR%\%NAME%_%date:~-4%_%date:~3,2%_%date:~0,2%.log
REM 7za.exe a %FILENAME% -r -mmt4 -mx1 -t7z -x!*.lgd -x!*.log %DIR%\* -p%PASSWORD%
REM CALL 7za.exe a %FILENAME% -mmt8 -mx1 -t7z -xr!*.lgd -xr!*.log -xr!*.lgf -xr!*.lgp -xr!*.zip -v2000m %DIR%\*  -p%PASSWORD% >%LOG% 2>&1
CALL 7za.exe a %FILENAME% -mmt8 -mx1 -t7z -xr!*.lgd -xr!*.log -xr!*.lgf -xr!*.lgp -xr!*.zip -v2000m -bso1 %DIR%\* >%LOG% 2>&1
REM =================================================================


Добавить в планировщик по событию при входе в систему:










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

Отправить комментарий