web-dev-qa-db-ja.com

RoboCopyのジョブと監視オプション

RoboCopyのジョブオプションは何をしますか?そして、/MONおよび/MOTスイッチは正確に何をするのでしょうか。どうすれば使用できますか?私はそれらを理解しておらず、それらの使用方法の例を見つけることができません。

  • / MON:n-モニターソース; nを超える変更が見られたときに再度実行します。
  • / MOT:m-MOnitorソース;変更された場合、m分後に再実行されます。

これは、最初に1回実行され、ファイル構造のどこかで変更が発生した場合、または何かが変更されて時間が経過した場合に、終了後に実行を継続し、再度実行することを意味しますか?

  • / JOB:jobname-指定されたJOBファイルからパラメーターを取得します。
  • / SAVE:jobname-名前付きジョブファイルにSAVEパラメータ
  • / QUIT-コマンドラインの処理後のQUIT(パラメーターを表示するため)。
  • / NOSD-ソースディレクトリが指定されていません。
  • / NODD-宛先ディレクトリが指定されていません。
  • / IF-次のファイルを含めます。

ジョブファイルとは/NOSDおよび/NODDスイッチの用途は何ですか?

21
Svish

例によって最もよく説明されます:

これは簡単なジョブファイルです。これをsample.rcjと呼びます。

:: Source Directory :
    /SD:C:\Documents and Settings\  :: Source Directory.

:: Destination Directory :
::  On command line

:: Copy options :
    /E      :: copy Subdirectories, including empty ones.

現在のマシンのc:\Documents and Settingsディレクトリを不特定の場所にコピーするオプションを指定します。

これを使用して、%DEST%環境変数で指定された宛先にコピーし、%LOG%ファイルにロギングを追加する方法を示します。

robocopy /nosd %DEST% /log+:%LOG% /job:sample

ソースがジョブファイルで指定されているため、/NOSDが指定されています。

コマンドラインでrobocopyコマンドを作成して遊んでみて、満足のいく結果が得られたら、/SAVEを使用して再度実行し、オプションをファイルに保存します。

/QUITはオプションを解析し、何か問題がある場合(無効なオプション、ソースが存在しない場合)にメッセージを表示しますが、実際には何もしません。

/IFを使用すると、ジョブ自体に加えてオプションのファイルを含めることができると思いますか? (私の例では、/LOGオプションをファイルに入れて、/IFと一緒に含めることができます。)ただし、ここで推測するだけです。

6
Randy Orrison

これは、最初に1回実行され、ファイル構造のどこかで変更が発生した場合、または何かが変更されて時間が経過した場合に、終了後に実行を継続し、再度実行することを意味しますか?

はい。/MONは、変更されたファイルの数をカウントします。/MOTは時間をカウントします。

ドキュメントにはこれらのジョブを開始する方法は記載されていますが、停止する方法は記載されていないため、私はこれらのオプションを試すことを恐れていました。私が知っている限り、それらは目に見えない、止められないスケジュールされたタスクになるかもしれません。

このページ は、実行中のジョブを(たとえば、control-Cで)中断するまで実行されることを示します。

(コメントではなく回答として追加されました。StackExchangeでは50の評判がないとコメントを書くことができず、3年後に1の評判があるためです。)

6
Phil Goetz

/MONソースをスキャンし、変更を検出するとコピーします。 /MOTn分後に再び再実行し、検出された変更をコピーします

/JOBを使用すると、多くのオプション(除外など)がある場合に、テキストファイルでオプションを指定できます。

私が何を知っていたかったら/NOSDおよび/NODD使用する理由がなかったので、やりました。

5
shufler

差出人: http://www-pc.uni-regensburg.de/systemsw/tools/robocopy.doc

/ MON:nおよび/ MOT:mスイッチを使用してディレクトリツリーを監視するソースディレクトリツリーの変更を監視し、変更が発生したときに変更をコピーできます。/MON:nスイッチは、再度実行する前に発生する必要がある変更の最小数を指定します。/MOT:mスイッチは、再度実行する前に経過する必要がある最小時間を分単位で指定します。これらのスイッチの1つだけを指定した場合、他のスイッチの値は1であると想定されます。

Monitoringが指定されている場合、Robocopyは終了しません。代わりに、通常のRobocopyパスを実行するループに入り、n個の変更が検出されてm分が経過するまで、ソースディレクトリツリーの変更を監視します。両方の条件が満たされると、別のRobocopyパスが開始されます。ユーザーが手動でRobocopyプロセスを終了するまで、コピーと監視のこのプロセス全体が無限に繰り返されます。

少なくとも、Robocopyはソースディレクトリツリーを監視して、ファイルとディレクトリの名前、サイズ、および最終書き込み時間の変更を確認します。属性をコピーする場合、Robocopyはツリーの属性の変更も監視します。同様に、セキュリティ情報をコピーする場合、Robocopyはセキュリティの変更についてツリーも監視します。

その結果、たとえば、ユーザーが編集を実行して1つの新しいファイルを保存すると、さまざまなタイプの複数の変更がRobocopyに報告される場合があります。したがって、Robocopyジョブごとに/ MONと/ MOTの適切なしきい値を決定するために、特にビジーツリーを監視する実験が必要になる場合があります。

3
buckley

例として、/MOT 10分ごとのコピーでDRファイルシステムを最新の状態に保つスイッチ。私は午前12時にスケジュールされたタスクでrobocopyを開始し、変更を10分ごとにコピーして終日実行します。スケジュールされたタスクは23時間55分後に自動的に停止するように設定されており、翌日のタスクは午前12時に再びロボコピーが開始されます。

Robocopyは、10分の期限が切れるのを待つ間、変更の数を示しますが、指定したソースフォルダー構造全体をスキャンします。いくつかのフォルダーの例外(/XD <folder>) できれば。

1
Mike

ジョブファイルの使用方法

ジョブファイルは、(通常)長いrobocopyコマンドラインを保存して再利用するために使用されます。

Robocopyジョブファイルを作成するには

ROBOCOPY C:\SRC C:\DST ...other.robocopy.options... /SAVE:TEST /QUIT

これにより、指定したすべてのRobocopyオプションを含むTEST.RCJという名前のRobocopyジョブファイルが作成されますbefore/SAVEスイッチ。実際にコピーを実行せずに終了します。

1つ以上のジョブファイルを使用するには

ROBOCOPY /JOB:TEST /JOB:JOBFILE2 ...other.options...

ジョブファイルを表示または編集するには

テキストエディタで開くだけです。フォーマットは自明です。

ジョブファイルをテストするには

編集をテストする場合、または複数のジョブファイルを組み合わせて、最終的な結果がどうなるか疑問に思う場合は、次のようにします。

ROBOCOPY /JOB:JOBFILE1 /JOB:JOBFILE2 /QUIT

ソース/宛先ディレクトリなしでジョブファイルを作成するには

この場合、次の構文を使用します。

ROBOCOPY /NOSD /NODD ...options... /SAVE:TEST /QUIT

どうやら/ NOSDと/ NODDはNO Source DirとNO Destination Dirを表しています。

コマンドラインで再度入力するとrobocopyが文句を言うので、ソースまたは宛先を定義するジョブファイルを実行するときにこれらのスイッチを使用する必要もあります。

/ MONおよび/ MOTについて

マニュアルの理解は正しいです。 Robocopyは、ユーザーが(Ctrl-Cなどで)終了するまで、変更の検出と処理を実行し続けます。

0
ndemou

これを行うもう1つの簡単な方法は、/ MIRスイッチを使用し、batファイルをスケジュールして、繰り返し実行することです。ソース側に基づいてのみ変更を行います。最初にフルコピーを実行する必要があります。

結果を確認するには、ログファイルを確認してください。また、マルチスレッドには/ MTスイッチを使用します。コピーを高速化します。

0
Root Loop