яндекс
Автоматическое резервное копирование данных с помощью PowerShell

В современном мире информация — это один из самых ценных ресурсов. Потеря данных может привести к серьезным последствиям, особенно в профессиональной среде. Сегодня мы рассмотрим, как с помощью PowerShell создать простой, но эффективный скрипт для автоматического бэкапа важных файлов. Такой подход позволит вам сэкономить время и сделать процесс резервного копирования доступным для автоматизации.

1. Создание основного скрипта

Давайте начнем с базового сценария для копирования файлов из одной папки в другую.

# Проверка целостности файлов
$sourceFiles = Get-ChildItem -Path $sourcePath -File
$destinationFiles = Get-ChildItem -Path $destinationPath -File

foreach ($file in $sourceFiles) {
    $sourceHash = Get-FileHash -Path $file.FullName
    $destinationHash = Get-FileHash -Path ($destinationPath + "\" + $file.Name)

    if ($sourceHash.Hash -eq $destinationHash.Hash) {
        Write-Host "Файл $($file.Name) скопирован успешно." -ForegroundColor Green
    } else {
        Write-Host "Ошибка копирования файла $($file.Name)." -ForegroundColor Red
    }
}

2. Добавление проверки целостности файлов

Теперь добавим функционал проверки, чтобы убедиться, что файлы не повреждены после копирования.

# Проверка целостности файлов
$sourceFiles = Get-ChildItem -Path $sourcePath -File
$destinationFiles = Get-ChildItem -Path $destinationPath -File

foreach ($file in $sourceFiles) {
    $sourceHash = Get-FileHash -Path $file.FullName
    $destinationHash = Get-FileHash -Path ($destinationPath + "\" + $file.Name)

    if ($sourceHash.Hash -eq $destinationHash.Hash) {
        Write-Host "Файл $($file.Name) скопирован успешно." -ForegroundColor Green
    } else {
        Write-Host "Ошибка копирования файла $($file.Name)." -ForegroundColor Red
    }
}

3. Расписание выполнения

Чтобы сделать процесс полностью автоматизированным, мы можем использовать задачу в Планировщике Windows (Task Scheduler), чтобы запускать скрипт по расписанию:

  • Сохраните ваш скрипт в файл BackupScript.ps1.
  • В Планировщике задач создайте новую задачу и настройте запуск PowerShell с параметрами:
powershell.exe -ExecutionPolicy Bypass -File "C:\Path\To\BackupScript.ps1"

Добавить комментарий