今回は、曜日別にファイル/フォルダをバックアップして、7世代分のバックアップを取る方法について、紹介します。
前回、Windowバッチで、曜日を取得する方法を紹介しましたので、それの応用編です。
スポンサーリンク
バックアップのイメージ
スクリプトの、処理イメージは以下の通りです。
このスクリプトを、タスクスケジューラで、毎日動かすイメージです。
※ Zip圧縮に7zip
を使います、事前にインストールしておいて下さい。
7zipのダウンロードは こちら
コードの内容
@echo off
@rem 7zipのインストール先パス
set ZIP_PATH="C:\Program Files\7-Zip"
@rem バックアップ元のファイル又はフォルダパスを指定
set BACKUP_DIR=C:\path\to\backup\from
@rem ファイル圧縮時に使用する一時ディレクトリのパスを指定
set WORK_DIR=C:\path\to\temp
@rem バックアップ先のフォルダパスを指定
set OUTPUT_DIR=\\backupserver\path\to\backup\to
set dt=%date:~-10%
set yyyy=%dt:~0,4%
set mm=%dt:~5,2%
set dd=%dt:~8,2%
set today="%yyyy%/%mm%/%dd% 12:00:00"
echo WScript.echo weekday(%today%) > tmp.vbs
for /f %%X in ('cscript //nologo tmp.vbs') do set YOUBI=%%X
if %YOUBI%==7 (set WDAY=SAT)
if %YOUBI%==6 (set WDAY=FRI)
if %YOUBI%==5 (set WDAY=THU)
if %YOUBI%==4 (set WDAY=WED)
if %YOUBI%==3 (set WDAY=TUE)
if %YOUBI%==2 (set WDAY=MON)
if %YOUBI%==1 (set WDAY=SUN)
@rem 7zipで圧縮 出力先はWORK_DIR 名前はbackup_tmp.zip
%ZIP_PATH%\7z.exe a %WORK_DIR%\backup_tmp.zip %BACKUP_DIR%
@rem 曜日に対応した名前にリネーム
rename %WORK_DIR%\backup_tmp.zip backup_%WDAY%.zip
@rem バックアップ先のフォルダにbackup_%WDAY%.zipを上書き
xcopy /y %WORK_DIR%\backup_%WDAY%.zip %OUTPUT_DIR%
@rem WORK_DIRに作成した一時ファイルを削除
del %WORK_DIR%\backup_%WDAY%.zip
スポンサーリンク
最後に
バックアップ先は、ローカルディスクではなく、外付けのHDDや、バックアップサーバの共有フォルダに取るようにしましょう。
本格的なバックアップは、専用のソフトでやった方がいいですが、簡易的なバックアップであれば、これで十分だと思います。
0 件のコメント:
コメントを投稿