業務PCで定時に自動バックアップ - Windowsコマンド実用例
業務で使用しているPCのドキュメントフォルダーなどを、毎日定時にNASやその他ネットワークフォルダーなどへ自動バックアップすることで、万が一のトラブルに備える例です。以下のバッチファイルとタスクスケジューラ設定により、ユーザー操作なしで自動的に同期されます。
使用コマンド
- Robocopy - 高速かつ堅牢なディレクトリコピー
- Schtasks /Create - タスクスケジューラにバッチを登録
- If - 条件分岐処理
バッチファイルの例
@echo off
setlocal
set LOGDIR=C:\backup\log
set SRCDIR=C:\Users\%USERNAME%\Documents
set DESTDIR=\\192.168.1.10\backup\%USERNAME%
if not exist "%LOGDIR%" mkdir "%LOGDIR%"
set TODAY=%date:~0,4%%date:~5,2%%date:~8,2%
robocopy "%SRCDIR%" "%DESTDIR%" /MIR /R:3 /W:10 /LOG+:%LOGDIR%\%TODAY%.log
これをメモ帳などで記述し、「C:\scripts\backup.bat
」などと保存します。
タスクスケジューラへの登録
以下のコマンドで毎日18時に実行するタスクを登録します:
schtasks /Create /SC DAILY /TN "DailyBackup" /TR "C:\scripts\backup.bat" /ST 18:00 /RL HIGHEST /F
これをWindowsターミナルやコマンドプロンプト、あるいは「ファイル名を指定して実行」に入力して実行します。
補足事項
- ネットワークドライブを使用する場合は、バッチ実行時にマウント済みである必要があります。
- 権限エラーが出る場合は、
/RU
や/RL
オプションを活用し、管理者権限での実行を検討してください。 - エラーログを監視する仕組み(例:メール通知やログ出力のパターンマッチ)を追加することで信頼性が向上します。