В современном мире информация — это один из самых ценных ресурсов. Потеря данных может привести к серьезным последствиям, особенно в профессиональной среде. Сегодня мы рассмотрим, как с помощью 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"