ПК і мобільний

Пакетний сценарій Windows для резервного копіювання даних

Користувачі комп’ютерів, які виросли на просунутих комп’ютерах Mac і Windows, можуть не знати про це, але колись, дуже давно, усіма персональними комп’ютерами керували за допомогою інтерфейсу командного рядка. Так, це незграбне командне поле на вашій машині Windows було буквально єдиним способом, яким більшість людей коли-небудь взаємодіяли з комп’ютером. Інтерфейси командного рядка в значній мірі покладалися на невеликі програми, які називаються «скриптами», які являли собою набір команд операційної системи, що використовуються для виконання звичайних завдань.

Хоча графічні інтерфейси користувачів сучасних ПК на світлові роки складніші та простіші у використанні, ніж старі командні рядки, старий метод керування комп’ютером все ще може використовуватися. Одним з найпоширеніших і добре підібраних додатків для сценарію командного рядка є резервне копіювання даних. Скрипти командного рядка можна автоматизувати для запуску в будь-який час без будь-якої взаємодії з людиною і мають кілька обмежень. Найкраще – вони є вбудованою частиною операційної системи Windows.

Чому скрипти командного рядка?

Навіщо використовувати сценарій командного рядка, коли існують як комерційні, так і безкоштовні програми резервного копіювання? Що ж, скрипти командного рядка мають ряд унікальних переваг. Ось декілька з них:

  • Рідні команди : Який кращий спосіб резервного копіювання даних, ніж використання функцій, доступних через програму, яка створює дані? Незалежно від того, чи є це сама операційна система за допомогою простої команди копіювання файлу або команди бази даних для створення відновлюваного двійкового файлу, вихідна програма найкраще знає, як створити резервну копію.
  • Максимальний контроль : Оскільки сценарій командного рядка виконує просту покрокову процедуру, ви точно знаєте, що відбувається, і можете легко змінити поведінку.
  • Швидко : Оскільки все є рідною командою, ніщо не підлягає інтерпретації. Знову ж таки, ви використовуєте команди, надані самою програмою, тому накладні витрати зведені до мінімуму.
  • Потужний : Я ще не бачив завдання резервного копіювання, яке не можна виконати за допомогою сценарію командного рядка... і я зробив деякі дивні речі. Хоча вам, можливо, доведеться провести деяке дослідження та спробувати й помилки, якщо у вас дійсно унікальні потреби, зазвичай вбудованих функцій та можливостей мови сценаріїв, яку ви використовуєте, більш ніж достатньо.
  • Безкоштовний і гнучкий : Очевидно, що сценарій командного рядка нічого не коштує (за винятком часу на його розробку), тому ви можете скопіювати свої сценарії на будь-яку кількість машин і систем з мінімальними витратами часу або грошей. Порівняйте це з вартістю придбання ліцензій на програмне забезпечення резервного копіювання на кількох серверах та/або настільних комп’ютерах.

Короткий огляд пакетного сценарію резервного копіювання

Більшість людей ніколи не навчилися використовувати сценарії командного рядка, і це вважається чимось «чорним мистецтвом». Однак насправді навчитися цьому досить просто. Щоб продемонструвати потужність командного рядка, я надаю простий пакетний сценарій Windows, який можна використовувати для резервного копіювання важливих даних. Цей налаштовуваний і настроюваний сценарій не вимагає жодних знань (або бажання вивчати) мову пакетних сценаріїв Windows, але якщо ви вирішите, що хочете дізнатися більше про пакетні сценарії Windows, ви побачите, що цей сценарій стане хорошим стартовим місцем. .

Що робить скрипт резервного копіювання:

  1. Створює повні або щоденні додаткові (визначення див. нижче) резервні копії файлів і папок, які ви вкажете в окремому текстовому файлі конфігурації (див. нижче).
    • Коли папку названо, створюється резервна копія цієї папки та всіх підпапок.
    • Коли файл названо, створюється резервна копія лише цього файлу.
  2. Стискає (архівує) резервні копії файлів. Після копіювання всіх файлів для резервного копіювання вони стискаються для економії місця. Щоб це працювало, у вашій системі необхідно встановити 7-Zip.
  3. Датує стиснений файл і переміщує його до місця зберігання. Після стиснення файлів резервної копії отриманому архіву присвоюється ім’я файлу відповідно до поточної дати, а потім переміщується до налаштованого місця зберігання, наприклад зовнішнього диска або мережевого розташування.
  4. Прибирає за собою. Після виконання всіх завдань пакетний сценарій очищає всі створені тимчасові файли.

Вимоги:

Windows 2000/XP/2003/Vista або новішої версії

7-Zip (безкоштовно)

Конфігураційний файл:

Файл конфігурації – це просто текстовий файл, який містить файли та папки для резервного копіювання, введений по одному елементу резервної копії на рядок. Цей файл повинні мати назву «BackupConfig.txt» і перебувати в тій самій папці, що й сценарій резервного копіювання. Ось приклад файлу BackupConfig.txt (зауважте, символ «#» у першому рядку вказує, що рядок є коментарем; коментарі завжди ігноруються під час виконання сценарію):

# Введіть імена файлів і папок, по одному на рядок.

C:Documents and SettingsJason FaulknerDesktop C:Documents and SettingsJason FaulknerМої документиВажливі файли C:ScriptsBackupScript.bat

У наведеному вище прикладі буде створено резервну копію робочого столу користувача Windows Джейсона Фолкнера (і всіх папок на робочому столі), папки під назвою «Важливі файли» всередині «Мої документи» (і всіх папок всередині «Важливі файли») та файлу «BackupScript.bat» всередині каталог C:Scripts.

Типи резервних копій:

  • Повна резервна копія: повна копія всіх файлів і папок (включаючи підпапки) включена в резервну копію.
  • Інкрементальне резервне копіювання: якщо надається папка, лише файли, створені або змінені на Поточна дата є

    створено резервну копію. Коли файл надається, його резервна копія завжди створюється, незалежно від того, коли він був змінений.

Пакетний сценарій резервного копіювання даних Windows

Я хочу підкреслити, що цей сценарій є дуже простим, оскільки все, що він робить, — це створює резервні копії, використовуючи просту копію файлу. Ви можете встановити деякі параметри конфігурації:

  • Місце зберігання резервних копій, де зберігаються отримані стислі файли резервної копії.
  • День тижня, коли виконується повне резервне копіювання (у будь-який інший день буде виконуватися додаткове резервне копіювання).
  • Місце, де на вашому комп’ютері встановлено 7-Zip. Сценарій автоматично налаштовується на пошук у розташуванні за замовчуванням.

Якщо у вас є пропозиції або запити щодо функцій, прокоментуйте нижче. Я дуже хотів би написати додаткову статтю до цієї публікації, яка містить оновлений сценарій на основі введених читачів. Якщо вам потрібні інструкції щодо «використання» цього сценарію або налаштування запланованого завдання, перегляньте посилання під джерелом сценарію.

Без зайвих розмов, ось воно:

Примітка: Оскільки лапки відображаються некоректно нижче (і в результаті можуть зіпсувати сценарій), я включив звичайне текстове посилання під сценарій, яке ви можете використовувати, щоб отримати точне джерело для копіювання.

@ECHO OFF REM BackupScript REM Версія 1.01, Оновлено: 21.05.2008 REM Джейсон Фолкнер (articles[-at-]132solutions.com) REM Виконує повне або поетапне резервне копіювання папок і файлів, налаштованих користувачем. Використання REM--- REM > BackupScript SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION REM ---Параметри конфігурації--- REM Розташування папки, в якій потрібно зберігати отриманий архів резервної копії. REM Ця папка має існувати. Не ставте "" в кінці, це буде додано автоматично. REM Ви можете ввести локальний шлях, літеру зовнішнього диска (наприклад, F:) або мережеве розташування (наприклад, \serverbackups) SET BackupStorage=C:Backup REM У який день тижня ви хочете виконати повне резервне копіювання? REM Введіть одне з наступного: нд, пн, вт., ср, чт, пт, сб, * REM У будь-який день тижня, окрім зазначеного нижче, буде виконуватися додаткове резервне копіювання. REM Якщо ви введете '*', повне резервне копіювання буде запускатися щоразу. SET FullBackupDay=* REM Місце, де 7-Zip встановлено на вашому комп'ютері. REM За замовчуванням знаходиться в папці «7-Zip» у вашому каталозі Program Files. SET InstallLocationOf7Zip=%ProgramFiles%7-Zip REM +--------------------------------------- --------------------------------+ REM | Не змінюйте нічого нижче, якщо ви не знаєте, що робите. | REM +------------------------------------------------ -----------------------+ Змінні використання REM. SET exe7Zip=%InstallLocationOf7Zip%7z.exe SET dirTempBackup=%TEMP%backup SET filBackupConfig=BackupConfig.txt REM Перевірка. IF NOT EXIST %filBackupConfig% ( ECHO Конфігураційний файл не знайдено, відсутній: %filBackupConfig% GOTO End ) ЯКЩО НЕ ІСНУЄ "%exe7Zip%" ( ECHO 7-Zip не встановлено в місці: %dir7Zip% ECHO Будь ласка, оновіть каталог, де Встановлено 7-Zip. ПЕРЕЙТИ END ) Змінні резервної копії REM. FOR /f "tokens=1,2,3,4 delims=/ " %%a IN ('date /t') DO ( SET DayOfWeek=%%a SET NowDate=%%d-%%b-%%c SET FileDate=%%b-%%c-%%d ) IF {%FullBackupDay%}=={*} SET FullBackupDay=%DayOfWeek% IF /i {%FullBackupDay%}=={%DayOfWeek%} ( SET txtBackup =Повний SET swXCopy=/e ) ELSE ( SET txtBackup=Інкрементальний SET swXCopy=/s /d:%FileDate% ) ECHO Початок копіювання файлів. IF NOT EXIST "%dirTempBackup%" MKDIR "%dirTempBackup%" ДЛЯ /f "skip=1 tokens=*" %%A IN (%filBackupConfig%) ЗРОБИТИ ( SET Current=%%~A IF NOT EXIST "!Current! " ( ECHO ERROR! Не знайдено: !Current! ) ELSE ( ECHO Copying: !Current! SET Destination=%dirTempBackup%!Current:~0,1!%%~pnxA REM Визначте, чи є запис файлом або каталогом. ЯКЩО "%%~xA"=="" ( Каталог REM. XCOPY "!Поточний!" "!Призначення!" /v /c /i /g /h /q /r /y %swXCopy% ) ІНШЕ (файл REM. COPY /v /y «!Поточний!» «!Призначення!» ) ) ) ECHO Копіювання файлів завершено. ECHO. SET BackupFileDestination=%BackupStorage%Backup_%FileDate%_%txtBackup%.zip REM Якщо файл резервної копії існує, видаліть його на користь нового файлу. IF EXIST "%BackupFileDestination%" DEL /f /q "%BackupFileDestination%" ECHO Стиснення файлів із резервними копіями. (Нове вікно) REM Стискайте файли за допомогою 7-Zip у процесі з нижчим пріоритетом. START "Стиснення резервної копії. НЕ ЗАКРИВАТИ" /belownormal /wait "%exe7Zip%" a -tzip -r -mx5 "%BackupFileDestination%" "%dirTempBackup%" ECHO Завершено стиснення файлів резервної копії. ECHO. Очищення ЕХО. IF EXIST "%dirTempBackup%" RMDIR /s /q "%dirTempBackup%" ECHO. : Кінець ECHO Завершено. ECHO. ENDLOCAL

Джерело звичайного тексту доступне тут: резервна копія

Якщо вам потрібна допомога, щоб розпочати впровадження цього сценарію, ось кілька посилань, які допоможуть вам:

  • Як створити пакетний файл
  • Як створити заплановану задачу Windows

Це той самий сценарій, який я використовую для щоденного резервного копіювання свого комп’ютера (з декількома модифікаціями, звичайно), тому я знаю, що він працює дуже добре. Сподіваюся, вам буде корисно.

Насолоджуйтесь!

$config[zx-auto] not found$config[zx-overlay] not found