Как говорится, сисадмины делятся на две категории: те — кто делает бэкапы, и те — кто будет делать бэкапы.
Будем использовать вездесущий и древний, как сам мир архиватор winrar. Кроме всех своих обширных возможностей архиватор умеет работать в консольном режиме, то есть в режиме командной строки.
Соответственно, дабы выполнить операцию архивации базы данных 1С, можно написать пакетный bat-файл, запихнуть его в планировщик заданий windows и установить желаемое расписание.
Статья полностью https://ice-dog51-23.livejournal.com/73749.html
Для примера, все базы данных находятся в директории C:\db, а архивные копии мы будем держать на диске D в директории :a», путь такой D:\a
Справку по командной строке можете получить в cmd таким образом:
rar.exe /?
Пишем в блокноте сам пакетник, расшифровка команд ниже
@echo off
start /B c:\progra~1\winrar.exe -a u -ag -y -r -ibck d:\a\0001_14.rar c:\db\77\0001_14
exit
Сохраним файл с именем базы данных «0001_14.txt«, данный файл не при каких обстоятельствах не будет выполнен, так как он является обычным текстовым файлом. Для того, чтобы ОС могла выполнять строки команд в этом файле он должен быть нами переименован в файл с расширением «.bat».
@echo off — команда запрещает вывод исполняемых строк на экран
start /B запускает приложение, в данном случае winrar, без создания нового окна (сайлент режим)
c:\progra~1\winrar.exe полный путь к программе winrar. Тильда обязательна, так как 8.3 никто в командной строке не отменял. Если укажете полный путь с пробелами, программа просто не будет найдена.
С ключами winrar все просто
-a добавить файлы в архив (ибо….)
u именно без тире, обновить файлы в архиве
-ag добавить к имени файла архива дату и время. Удобство очевидно. В данном случае будет добавлена информация год, месяц, число, час, минута, секунда создания архива. С вариантами можно играться.
-y Отвечать «Да» на все вопросы. Девушкам не нравится этот префикс.
-r Соответственно, рекурсивно обходить все подкаталоги в базе, если таковые имеются (решайте сами)
-ibck Ключ архиватора, сворачивающий процесс в трей, дабы не мозолил глаза
d:\a\0001_14.rar директория и имя архива, который будет создан в результате наших действий. Не забудьте, что к концу имени архива прибавится дата и время.
c:\db\77\0001_14 Собственно директория базы данных, которую требуется упаковать и сохранить
Команда exit завершает работу пакетного файла по выполнению всех операций.
Ок, получилось целых три строчки. Для удобства и контроля, можно создать по одному пакетному файлу для каждой базы данных, и, соответственно, назначить для них отдельные задания на выполнение в свое время. Как добавить задание в среде ОС Windows, объяснять не буду. Копайте сами.
При назначении заданий на ежедневное выполнение в рабочие дни в ночное время следует не забывать, что архив, созданный в понедельник в 5:00 например, будет точной копией архива, созданного в пятницу в 5:00. Конечно, если в выходные дни бухгалтерия не работает. Логично будет предположить, что архивы должны создаваться со вторника по субботу включительно. Именно в таком случае они будут отличаться друг от друга.
ОК. Надеюсь. все вышло и работает. Поехали дальше. Жесткий диск на компьютере не резиновый и с течением времени место на нем просто закончится и писать архивы будет некуда.
Логика простая, нужно удалять архивные файлы, старше 30 дней. Это к примеру, интервал на любителя. Для автоматизации процесса снова воспользуемся пакетными файлами.
Пример такой:
goto start
_____________________________________________
Ищем rar-файлы старше 30 дней и удаляем их
_____________________________________________
:start
Forfiles -p d:\a -m *.rar -d 30 -c "cmd /c del /q @path"
exit
goto start — команда отправляет для выполнения программы после якоря «start», между goto и якорем может быть заключен комментарий к файлу (хороший тон для программиста), который программа не будет читать и выводить на экран
:start — сам якорь
Программа Forfiles имеет много ключей, как правило, хэлп к программе выглядит так
Forfiles /?
-p Путь, с которого начинается поиск, если его нет, то по умолчанию, поиск начинается из текущего каталога, где лежит батник.
-m Маска для поиска файлов. Мы будем искать только файлы, с расширением *.rar.
-d 30 выбор файлов, у которых дата изменения меньше или равна указанному количеству дней. В нашем случае это 30 дней.
-c Команда, которая будет выполнена forfiles во всех подпапках
cmd /c Выполнение указанной команды (строки) с последующим завершением
cmd /q Отключение режима вывода на экран команд
@path определить путь к файлами
exit — Соответственно завершение операции
Гуд. Таким образом, назначаем выполнение задания ежедневно (по вкусу) после завершения выполнения всех заданий архивации. Желаете, значит делаете до выполнения архивации. Все зависит от объема конкретного HDD и соотношения: количество баз данных/размер готовых (aka) хранимых архивов.
Хранить все яйца в одной корзине — плохой тон. Будем сливать свежесозданные архивы на другой сервер.
Не поверите, снова пакетный файл. Имя придумайте сами.
@echo off
start /B xcopy d:\a\*.rar \\ip-адрес_сервера\d$\a /D /H /Y
exit
Задавать желательно ip-адрес удаленного компьютера, надеюсь, он у сервера статичный, а не его сетевое имя.
Ключи xcopy
/D копирует только новые файлы, которых нет на удаленке.
/H копирует скрытые и системные файлы (для некоторых ситуаций)
/Y Подавляет запросы на перезапись (по желанию).
Логично выполнять операцию после завершения всех заданий архивации и до момента удаления старых архивов.
Статья полностью https://ice-dog51-23.livejournal.com/73749.html