Главная » 2014»Январь»30 » backup на основе WinRAR, WSH скриптов и Планировщика задач Windows
09:50
backup на основе WinRAR, WSH скриптов и Планировщика задач Windows
Как будет работать бэкап
Итак, мне требуется:
Хранить бэкап за каждый день в виде архивного файла
Каждый файл должен создаваться с уникальным именем (в идеале включать дату создания в имя файла)
Процесс создания бэкапа должен проходить в автоматическом режиме
Файлы старше 1 недели должны автоматически удаляться
Архивацией будет заниматься WinRAR, он же будет автоматически именовать файлы. Определять возраст и удалять старые файлы будет скрипт (VBScript), а автоматизировать все я буду с помощью встроенного Планировщика Windows.
Скрипты
Вот сам скрипт бэкапа (привожу код целиком):
' ----------
' Начало основной секции. Отсюда начнется выполнение при запуске скрипта. Set FSO = CreateObject("Scripting.FileSystemObject") ' директория, где будут храниться бэкапы. Вы должны вписать свою директорию ' вместо "X:\DailyBackup" sDir = "X:\DailyBackup" Set objDir = GetFolder(sDir) DeleteOlderFiles(objDir)
' ---------- Секция функций ' Получить файл Function GetFile(sFile) On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject") Set GetFile = FSO.GetFile(sFile) if err.number <> 0 then WScript.Echo "Error Opening file " & sFile & VBlf & "["&Err.Description&"]" Wscript.Quit Err.number end if End Function ' Получить папку Function GetFolder (sFolder) On Error Resume Next
Set GetFolder = FSO.GetFolder(sFolder) if err.number <> 0 then WScript.Echo "Error Opening folder " & sFolder & VBlf & "["&Err.Description&"]" Wscript.Quit Err.number end if End Function ' удалить один файл (имя файла передается в sFile) Sub DeleteFile(sFile) On Error Resume Next
FSO.DeleteFile sFile, True if err.number <> 0 then WScript.Echo "Error Deleteing file " & sFile & VBlf & "["&Err.Description&"]" Wscript.Quit Err.number end if End Sub ' Удалить файлы старше 7 дней Sub DeleteOlderFiles(objDir) ' просматриваем все файлы в директории for each efile in objDir.Files ' используем DateLastModified, а не DateCreated, поскольку ' DateCreated не всегда возвращает правильную дату FileDate = efile.DateLastModified Age = DateDiff("d",Now,FileDate) ' в данном случае возраст файла не больше семи дней If Abs(Age)>7 Then DeleteFile(efile) End If next End Sub
Этоткодпомещаемвфайлremove_old_backups.vbs.
Командная строка WinRAR
Архиватор WinRAR обладает мощной поддержкой командной строки. В частности, он может формировать имя файла на основе пользовательского шаблона, включая в него разную служебную информацию, например, дату. Что нам, собственно говоря, и требуется. Кроме того, он умеет работать со списком файлов или директорий на архивацию, что сильно облегчает редактирование командного файла. Я использую следующую командную строку для архивирования (прописана в файле make_daily.bat):
"c:\program files\winrar\winrar.exe" - путь к WinRAR-у
a - команда на добавление файлов
-s - режим сжатия "solid"
-r - с поддиректориями
-rr10p - на всякий случай добавляем информацию для восстановления (-rr), в количестве 10% (10p)
-dh - открывать шареные фалы. Полезно, если кто-нибудь засиделся до 12 ночи, и редактирует файл, который должен уйти в бэкап
-ed - не добавлять пустые директории
-m3 - степень сжатия 3
-ilogC:\DailyBackupScript\dailybackup.log - вести лог (-ilog) и записывать его в "C:\DailyBackupScript\dailybackup.log"
-ag+YYYYMMDD X:\DailyBackup\backup - формировать имя файла, прибавляя в начало текущий год, месяц и число. Имя файла будет иметь примерно такой вид: 20060927backup.rar
X:\DailyBackup\backup - папка, куда писать бэкапы и имя бэкапа (к которому в начало дописываются год, месяц, число)
Командные файлы
Вся работа по созданию бэкапа строится на основе командных файлов (.bat-файлов). У меня их два:
make_daily.bat - содержит команды для создания архивного файла или файлов.
backup_task.bat - выполняет следующие действия:
вызывает интерпретатор скриптов cscript и передают ему на выполнение скрипт, удаляющий старые файлы.
вызывает make_daily.bat и передает ему в качестве параметра либо папку, которую надо архивировать, либо файл-список (в котором несколько папок на архивацию).
В свою очередь, backup_task.bat вызывается Планировщиком Windows в назначенное время
Для работы также необходимо создать файл backup.lst (обычный текстовый файл). Он должен содержать список директорий, которые включаются в бэкап. Каждая директория должна располагаться на отдельной строчке, например, так:
c:\Projects
c:\VeryImportantProjects
c:\Folder Name With Spaces\SubFolder
Обратите внимание, что имя директории-источника, содержащее пробелы, не обязательно заключать в кавычки, если вы пользуетесь файл-списком. Если же вы передаёте его напрямую, то кавычки обязательны. Не ставьте завершающий слэш - WinRAR этого не поймёт.
Загрузить, скачать Администрирование, backup на основе WinRAR, WSH скриптов и Планировщика задач Windows бесплатно.
Скачать backup на основе WinRAR, WSH скриптов и Планировщика задач Windows бесплатно
backup на основе WinRAR, WSH скриптов и Планировщика задач Windows бесплатно и без регистрации.
При копировании материала указывайте источник
backup на основе WinRAR, WSH скриптов и Планировщика задач Windows download free