LoginSignup
9
10

More than 5 years have passed since last update.

ネットワークドライブ上のファイルのローカルバックアップをスケジューリングする

Posted at

やること

  • ファイルサーバ上にあるファイルを定期的バックアップしたい
  • バックアップ先はサーバと同一LANにあるローカルマシンである
  • このバックアップをスケジューリングしたい

ローカルマシンはWindows7.
バックアップ先はWin機にマウントしている外付けHDD(F:\)とする

前提: ファイルサーバのドライブマウント

後々にコピーをコマンドで実行するために,ファイルサーバをWindows上でマウントしておく.

$> net use * \\[ServerName]\[UserName] * /user:[UserName] /persistent:yes

このコマンドをWindowsのcmd上で実行することで,ファイルサーバ上のホームディレクトリ/共有ディレクトリを参照できるようになる

バックアップ

バックアップ元:
サーバー名"Server"のディレクトリ/home/hogehoge

バックアップ先:
Win機の外付けHDD(Fドライブとしてマウント)

使うコマンドはrobocopy
パソコンのファイルをrobocopyで手堅くバックアップする方法
robocopyでフォルダをバックアップ/同期させる

$ robocopy \\Server\hogehoge F:\backup\hogehoge /mir
上記のコマンドをDOS上で実行すると差分コピーが一回完了するはず.

コピー元のディレクトリが,サーバー中に"/home/hogehoge" のパスで存在していたとしても,Win機側から見ればパスは"\Server/hogehoge" である

バックアップのスケジューリング

前述のrobocopyコマンドに,Read/Writeのオプションなどを付け加える.
robocopy \\Server\hogehoge F:\backup\hogehoge /mir /log:"C:\Users\hogehoge\Desktop\log.txt" /r:0 /w:0 /NDL /FFT /NP

/R:0, /W:0
読み書き共に0回までの再試行を行う

/NDL
出力にファイルパスを表示しない

/FFT
更新時間の比較に2秒の誤差を許す
(バックアップ元がネットワーク上であるため必要)

/NP
進行中の状況を非表示

このコマンドをバッチファイルにする.

タスクスケジューラを起動する
"タスクの作成"より,
[全般]タブ
* "ユーザがログオンしているかどうかにかかわらず実行する"
* "最上位の特権で実行する"

[トリガー]タブより,
* 毎日/毎週/毎月などのスケジュールを設定

[操作]タブより,
* "プログラムの開始"
* プログラム/スクリプトに作成したバッチファイルのパスを指定する
* "開始"フォームにバッチファイルを置くディレクトリのパスを指定する

以上,パスワードを入力すると
スケジューリング設定はここまで.

設定したタスクを手動で実行してみる.

(Windows上でのユーザ名/パスワードが,ファイルサーバ上でのユーザ名/パスワードと異なるとコピーが成功しない?)

9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10