Чорноп'ятов Е.А. Найпростіший backup на основі WinRAR,
WSH скриптів і Планувальника завдань Windows
- вступ
- Як буде працювати бекап
- скрипти
- Командний рядок WinRAR
- командні файли
- планувальник
- висновок
- посилання
вступ
Як буде працювати бекап
Отже, мені потрібно:
- Зберігати бекап за кожен день у вигляді архівного файлу
- Кожен файл повинен створюватися з унікальним ім'ям (в ідеалі включати дату створення в ім'я файлу)
- Процес створення бекапа повинен проходити в автоматичному режимі
- Файли старше 1 тижня повинні автоматично віддалятися
Архівацією буде займатися WinRAR. він же буде автоматично іменувати файли. Визначати вік і видаляти старі файли буде скрипт (VBScript), а автоматизувати всі я буду за допомогою вбудованого Планувальника Windows.
Основу скриптів складають процедури з книги Джессі Торреса "Скрипти для адміністратора Windows" (а саме з глави 3 "Обслуговування файлів"). Вони були доповнені мною для реалізації моїх завдань.
Ось які функції нам знадобляться (привожу код цілком):
Цей код поміщаємо в файл remove_old_backups.vbs.
Командний рядок WinRAR
Архіватор WinRAR має потужну підтримкою командного рядка. Зокрема, він може формувати ім'я файлу на основі призначеного для користувача шаблону, включаючи в нього різну службову інформацію, наприклад, дату. Що нам, власне кажучи, і потрібно. Крім того, він уміє працювати зі списком файлів або директорій на архівацію, що сильно полегшує редагування командного файлу.
Я використовую наступну командний рядок для архівування (прописана в файлі make_daily.bat):
Розберемо її за складовими:
командні файли
Вся робота по створенню бекапа будується на основі командних файлів (.bat-файлів). У мене їх два:
- make_daily.bat - містить команди для створення архівного файлу або файлів.
- backup_task.bat - виконує наступні дії:
- викликає інтерпретатор скриптів cscript і передають йому на виконання скрипт, що видаляє старі файли.
- викликає make_daily.bat і передає йому в якості параметра або папку, яку треба архівувати, або файл-список (в якому кілька папок на архівацію).
- У свою чергу, backup_task.bat викликається Планувальником Windows в призначений час
Вміст файлу make_daily.bat (в один рядок):
Вміст файлу backup_task.bat:
Для роботи також необхідно створити файл backup.lst (звичайний текстовий файл). Він повинен містити список директорій, які включаються в бекап. Кожна директорія повинна розташовуватися на окремому рядку, наприклад, так:
Зверніть увагу, що ім'я директорії-джерела, що містить прогалини, не обов'язково брати в лапки, якщо ви користуєтеся файл-списком. Якщо ж ви передаєте його безпосередньо, то лапки обов'язкові. Не ставте завершальний слеш - WinRAR цього не зрозуміє.
планувальник
Планувальник можна викликати через меню Start | Programs | Accessories | System Tools | Scheduled Tasks. або через Control Panel. Відкриється папка Scheduled Tasks. в яку і треба додати нову задачу. Це можна зробити наступним чином (я наводжу тільки основні кроки).
Двічі клацаємо Add Scheduled Task, щоб додати нову задачу
Виберемо наш bat-файл:
Задамо ім'я і періодичність завдання
Задамо час запуску
Задамо обліковий запис і пароль, від імені якої буде виконуватися завдання. Обов'язково!
Редагувати властивості завдання можна, клацнувши правою кнопкою миші на іконці завдання в папці Sheduled Tasks і вибравши пункт меню Properties.
висновок
Ось ми і створили найпростіший, але потужний :) "бекапер" (або бекапщік? Як правильно?) З підручних засобів. Його можна розширювати і налаштовувати, змінювати архіватори, прикручувати всякі перевірки і т.д. І все це без використання сторонніх продуктів і майже без програмування.
Сподіваюся, мій досвід виявиться для вас корисним.