Записки сисадмина
Алексей Никипольский
Пятница, 22.11.2024, 09:22
 
Меню
Настройка windows XP [38]
тонкости настройки, скрытые возможности
Программирование [8]
Нюансы, примеры, мои наработки и прочая полезная информация
Защита [28]
Компьютера, данных, интернет соединений и прочая полезная информация по защите
Обзор новинок [15]
Новинки ПО и железа
Обмен опытом [20]
Заработок в сети [9]
Все виды заработка в сети интернет, обзор, анализ, рекомендации
Распознование [10]
Все о методах и способах распознавания графической информации. Взлом капчи, методы и способы анализа...
Электронные книги [4]
По PHP CSS SQL PERL программированию Всё что есть в свободном доступе в интернете на разных ресурсах.
WEB программирование [9]
Всё о программировании WEB PHP Java PERL HTTP HTML и т.п.
Взлом [6]
методика взлома, примеры взлома, способы защиты от взлома
Онлайн сервисы [2]
Полезные сервисы онлайн
Администрирование [27]
Опыт системного администрирования
Статистика
Календарь
«  Январь 2014  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031
Главная » 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" a -s -r -rr10p -dh -ed -m3 -ilogC:\DailyBackupScript\dailybackup.log -ag+YYYYMMDD X:\DailyBackup\backup

Разберем ее по составляющим:

  • "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 в назначенное время
@"c:\program files\winrar\winrar.exe" a -s -r -rr10p -dh -ed -m3 -ilogC:\DailyBackupScript\dailybackup.log -ag+YYYYMMDD X:\DailyBackup\backup %1

Содержимое файла backup_task.bat:

@cscript remove_old_backups.vbs
call make_daily.bat @backup.lst

Для работы также необходимо создать файл backup.lst (обычный текстовый файл). Он должен содержать список директорий, которые включаются в бэкап. Каждая директория должна располагаться на отдельной строчке, например, так:


c:\Projects
c:\VeryImportantProjects
c:\Folder Name With Spaces\SubFolder

Обратите внимание, что имя директории-источника, содержащее пробелы, не обязательно заключать в кавычки, если вы пользуетесь файл-списком. Если же вы передаёте его напрямую, то кавычки обязательны. Не ставьте завершающий слэш - WinRAR этого не поймёт.






Рекомендую Вам также почитать:


  • Windows 7 и два маршрута по умолчанию
  • Повышение защищенности и масштабируемости демилитаризованной зоны
  • Запуск из командной строки административных оснасток Windows
  • Как записать образ LiveCD на флешку
  • Снятие защиты *.avi установленной с помощью AviLock.com
  • Внутреннее устройство Microsoft Windows. 6-е издание
  • Опубликовано доказательство P ≠ NP?
  • Удаляем свои личные данные из интернета
  • Windows XP и Windows Vista – отлаживаем параметры безопасности
  • Как отцентрировать DIV по вертикали

  • Загрузить, скачать Администрирование, backup на основе WinRAR, WSH скриптов и Планировщика задач Windows бесплатно.
    Скачать backup на основе WinRAR, WSH скриптов и Планировщика задач Windows бесплатно
    backup на основе WinRAR, WSH скриптов и Планировщика задач Windows бесплатно и без регистрации.

    При копировании материала указывайте источник

    backup на основе WinRAR, WSH скриптов и Планировщика задач Windows download free


    Категория: Администрирование | Просмотров: 4489 | Добавил: Никипольский-Алексей | Теги: backup Планировщик задач Windows, backup WSH скрипт, backup WinRAR, бэкап файлов, бакуп файлов | Рейтинг: 0.0/0
    Всего комментариев: 0
    avatar
    Мои услуги на Kwork
    Like It


    Copyright Алексей Никипольский © 2009 - 2024