こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ファイルへの書き込みを妨げないコピー・バックアップ

コピー元ファイルへの書き込みを禁止せずにコピー・バックアップできるソフトを教えてください。ファイルのコピーをしたいのですが、コピー中に別のソフトがそのファイルへの書き込みを行った場合でも書き込み側でエラーにならないようにしたいのです。コピーのほうは、書き込みにより失敗しても構いません。(最悪、中断して尻切れになるなど不正なファイルが出来てしまっても大丈夫です。対策することは可能です。)

私の見落としでなければ、Windowsのcopyコマンド、FastCopy、BunBackupではできないようです。
Windows7で使います。

投稿日時 - 2019-06-08 20:33:38

QNo.9624104

暇なときに回答ください

質問者が選んだベストアンサー

FastCopy開発者です。
FastCopy2.ini の [main] セクションに writeshare_open=1 を追加すると、src を write share open するようになるので、ご期待の動作になるかもしれません。

参考URL:https://groups.google.com/forum/#!topic/fastcopy-bb-eng/JweZKOHugbE

投稿日時 - 2019-06-12 14:38:37

お礼

回答ありがとうございます。

write share open を指定することで無事書き込み可のままコピーが出来ました。コピー中に書き込みがあった場合はコピー先のファイルは残らず、これも私にとっては理想的でした。

#学生時代 IP Messenger にはお世話になりました。

投稿日時 - 2019-06-16 07:02:21

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.5

2です。

ファイルコピーではなくバックアップであればAcronisのTrue Imageなどはどうでしょうか。これはバックアップ中であっても通常の使用を妨げることはありません。15年以上使ってますがバックアップ/リストアとも問題なく使用できています。
最近のバージョンはUIが使いにくくて閉口しますが、それでも機能性能的には満足してますので使い続けています。
世代バックアップや差分バックアップもあるので、バックアップ用途であればこの手のソフトがあった方がいいと思います。

もっとも最近はWindows標準のバックアップもよくなってきたようなので、実はそれで十分なのかも知れませんが。

投稿日時 - 2019-06-09 19:24:44

お礼

ご紹介ありがとうございます!

投稿日時 - 2019-06-09 22:26:53

ANo.4

排他制御されているファイルを強制的に読み出すツールは作ることが可能ですが、逆が成立するかは把握していません。
このツールは使った事がありませんが、謳い文句通りならあなたの要望を達成できる可能性があります。
https://www.novirusthanks.org/products/raw-file-copier-pro/

保障を得たければサーバー版WindowsでVSSを使うべきだと思います。
VSSを使わずcopyやfastcopy等の通常ツールでできないのは当然です。

投稿日時 - 2019-06-08 21:35:59

補足

私としては排他制御をしないだけの通常ツールでもいいのです。

Raw File Copier Pro 試してみました。
見事、書き込み可能な状態を維持したままコピーができました。
管理者として実行する必要があります。
・コマンドラインからは使えない(起動するだけ)
・一度に一つのフォルダかファイルしか指定できない
と言う点が個人的には惜しいところです。

投稿日時 - 2019-06-09 16:17:36

お礼

回答ありがとうございます。Raw File Copier を使い工夫してみます。(コピーしたいファイルだけ、別フォルダにハードリンクを作れば対象の選択は自由にできるはず)

> 排他制御されているファイルを強制的に読み出すツール
リアルタイムに読み出す方法があるのですか?(ハードリンクを張って排他制御しているプログラムが終了しても残るようにし後で読み出すというのはやったことがあります)

投稿日時 - 2019-06-09 16:52:23

ANo.3

いつ書き込みが発生するか解らないわけですから、コピーソフト自身がそのような対応をするのはムリでしょう。
実現するとすれば、書込むソフト側が判断する必要があります。

投稿日時 - 2019-06-08 21:35:28

補足

コピーソフト側で排他制御をしないだけでいいのです[1]。それだけで万事うまくいくのかというとそれは別の話のようですが[2]。

[1]
https://s0u.hatenadiary.org/entry/20060621/1150907291
ログファイルコピー中にログ出力出来ない - ひらいて
ファイルオープン時にFILE_SHARE_WRITEを指定することでエラーを回避できるケース

[2]
https://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=20357&forum=7
「2アプリによる同一ファイルの読み書き処理について」(1) Insider.NET - @IT
他プロセスによる読書き禁止でファイルを開くアプリケーションではおそらく[1]の方法ではエラーになるでしょう

投稿日時 - 2019-06-09 00:23:30

お礼

回答ありがとうございます

投稿日時 - 2019-06-09 16:21:35

ANo.2

単純にコピーをするだけでは、後からくる方(この場合は別のソフト)の対応となるので、ちと厳しいですね。
ちゃんとしたバックアップソフトであればスナップショットをとってバックアップするので問題ないと思いますが、ファイルコピーとなるとう~ん・・・

シャドウコピーでスナップショットをとって、手動でコピーとかでどうですかね。とりあえず下記参照で。

http://www.se-support.com/clientpc/volumeshadow.html

投稿日時 - 2019-06-08 21:18:56

補足

排他制御をしないだけでもいいです。

> シャドウコピー
最短1分間隔と高頻度ではないもののそこそこの頻度でスナップショットをとれそうですね。その程度ではあっても、対象がドライブ単位のようなので、専用のドライブを用意しないとシステムが応答しなくなるかもしれないと思い実行までは試しておりません。

> 手動でコピー
手動でGUI操作してもいい場合が多いでしょう。ただ、私の場合は頻度上自動化できないと現実的ではないのです。コマンドではできませんか?



スナップショット (ファイルシステム) - Wikipedia
によるとVSSは「以前のバージョン」とともに「バックアップと復元」でも利用できるとのことだったのでそちらも試してみました。この場で簡単に報告させていただきます。

コントロール パネル\システムとセキュリティ\バックアップと復元
バックアップの「設定の変更」で
・バックアップを保存する場所に自機上の共有フォルダを指定
・バックアップの対象にテスト用フォルダのみを指定
・スケジューリングはせず「今すぐバックアップ」で実行
としました。

バックアップ中の書き込みも問題なく行えました。

バックアップの度Backup Set 2019-06-09 013204といったフォルダが作られ、中身は
Backup files 1.zip
Backup files 2.zip
:
というファイルでした。
317MBの1.datについては
Backup files 2.zip\D\tmp\1.dat 203MB
Backup files 2.zip\D\tmp\1.dat 1.7MB
Backup files 2.zip\D\tmp\1.dat 19KB
Backup files 3.zip\D\tmp\1.dat 115MB(←zip2つ目)
となりました。
(私は100MBクラスのファイルに対して使う予定はないので、復元時の結合で手間取ることはなさそうです)
実行時間は上記1.datで4~5分でした。1~30MBの10ファイル、合計121MBでは約4分でした。(なお、普通のコピーではどちらも10~20秒)
マシンスペック不足の為今回は採用を見送ります。

> ちゃんとしたバックアップソフト
例えばどのようなものですか?
有償でも体験版があって数千円程度から始められるものなら試してみたいです。

投稿日時 - 2019-06-09 10:37:40

お礼

回答ありがとうございます

投稿日時 - 2019-06-09 16:20:18

ANo.1

fastcopy で「エラー時継続」をチェックしてもだめですか?

投稿日時 - 2019-06-08 21:11:10

補足

本件には特に影響ありませんでした。

投稿日時 - 2019-06-08 23:40:57

お礼

回答ありがとうございます

投稿日時 - 2019-06-09 16:18:56

あなたにオススメの質問