電子書籍の厳選無料作品が豊富!

定刻に決められたファイルをバックアップする為、batファイルを40個ほど一斉に起動し、バックアップを行っています。
フォルダ毎コピーすればbatファイルは1つで済むのですが、バックアップが不要なファイルが多いため、個別にコピーしています。
また、コピー時間を短くする意味を込めて、並列でコピーする事で時間の短縮を図っています。

set 変数=ファイル名
/copy /y C:\ファイルA D:\ファイルB
call ログファイル.bat ~
のような書き方をしており、ファイルのコピーが成功した際にログ書き込みのbatファイルを動かし、ログを書くという処理をしています。

タスクスケジューラーで定刻に起動する設定をし、定刻になるとタスクスケジューラーは40個の命令を行います。
コピー時間をさらに早くしたいと思っているのですが、
・40個のファイルを1つずつタスクスケジューラーで起動する方法
・1つのbatファイルに残り39個のファイルをstart C:\バッチファイルで呼び出す方法

どちらの方が早いでしょうか?
ログファイルで時間の測定をしたのですが、ネットワーク速度の負荷などのせいか違いが見つかりませんでした。
どちらも大差ないのでしょうか?

A 回答 (4件)

バックアップの全体処理時間を短縮するには、単に起動方法の考慮だけでなく、デバイスの競合も考慮する必要があります。

(ネットワークの負荷による違いよりもこちらが大きな要因か?)
入力側、出力側共ですが、同時にアクセスするとデバイスに競合が発生し、特にHDDなどはヘッドの移動時間がばかになりませんからね。
    • good
    • 0

>フリーソフトを使用していたのですが、ファイルを1つずつコピーする


バックアップの必要なファイルは 特定のフォルダに固めておいて そのフォルダをバックアップ対象にすればいいでしょう。
ファイルをひとつづつ指定する なんてやりかたでは ファイルが増減するたびにバックアップ方法を変えないといけないじゃないですか。

ところで バックアップの 世代管理 はやってますか?
私はITの仕事をしていましたが 毎日、月末、半期末の7世代取っていました。
差額方式(更新していないファイルはコピーしない)や圧縮方法などいろいろなやり方があるので、環境を説明してくれたら、最適な方法を助言できるかもしれません。
    • good
    • 0

ボトルネックがどこにあるか?(例えばディスク読み書きやネットワーク送受信)によるので、


ログファイルで時間の測定をして違いが見つからないのであれば、どちらも大差ないと思いますよ。
    • good
    • 0
この回答へのお礼

なるほど、ありがとうございます。
ログファイルを見る限り大差がないので現状のやり方を試してみます

お礼日時:2021/06/16 15:51

どのような目的でバックアップをしているのかにもよります。


でも、同時に40個のバッチ処理 はよくないですね。
1つのバッチファイルに40個もコピーの記述を入れれば 一時(いっとき)にコピーするのは1つなので、トータル時間は長いかもしれませんがディスクの消耗が少なくていかもしれません(私ならそうします)。

私は フリーソフトのFilevisorの付属機能の「フォルダ同期スクリプト」を使って データのバックアップを取ってます。バックアップ先はLANディスクです。さらに重要なファイルはクラウドにも同期するようにしてます。
私はITの仕事をしていましたので、データのバックアップの重要性は痛感していて、私用PCでも必ずバックアップを取ってます。
    • good
    • 0
この回答へのお礼

目的としては複数ユーザーが使っているmdbファイルのバックアップになります。
元々はバックアップ用のフリーソフトを使用していたのですが、ファイルを1つずつコピーするので、コピー完了までの時間がかかってしまうという弱点がありました。
バックアップ用に使用禁止にしている時間が短いため、スムーズにバックアップをする必要がある為、並列でバッチファイルを動かしています。

お礼日時:2021/06/16 09:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!