- ベストアンサー
BATファイルについて
こんにちは。 皆さんの知恵をお貸し下さい。 AサーバとBサーバがあります。 (両方ともファイルサーバです) AとBは同期をとるBATファイルをあててあります。 ユーザからはAだけ見えて、Bは見えません。 運用のなかでAの方だけファイル削除して Bの方にだけファイルが残った場合、 AになくてBにあるものを削除しなさい、 というコマンドは何かあるんでしょうか。 ご存知でしたら教えていただけますか。 以上、宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>運用のなかでAの方だけファイル削除して >Bの方にだけファイルが残った場合、 >AになくてBにあるものを削除しなさい、 >というコマンドは何かあるんでしょうか。 普通「同期」というのはそういうものを含むのですが、今はどういうBATファイルを書かれているんでしょうか? (例)robocopyだと /purge か /mir ですね。 http://www.rimesene.co.jp/mesene/tips/contents/zd063.htm http://www.atmarkit.co.jp/fwin2k/win2ktips/877robomir/robomir.html 他のコマンドでもやり方はあるハズですが・・。
その他の回答 (2)
- shimix
- ベストアンサー率54% (865/1590)
>確認したところ#2の方が指摘されたようにAで間違って >消してしまったときにBに残っているデータで対応するために >上記コマンドの仕様にしてあるようです。 ANo.2の方も書かれているように「世代管理」をすべきですね。で、キチンと世代管理されているのであれば、ANo.1で書いたようにrobocopyのミラーリングコピーでいいと思います。調べたらxcopyには削除機能はないようです(出力側を全削除してからxcopyだと時間がかかりすぎますよね)。robocopyをお勧めしておきます。一応MS謹製ですし。
直接の回答ではありませんが、 Bへはバックアップの意味で保存しているのでしょうから、 バッチでBも消してしまったら、 A上で「あっ!消しちゃった!」というときに困るのでは? あと、ファイルサーバを使っているなら、 少なくとも2世代ぐらいの管理は必要では? 老婆心ながら...
お礼
#1の方へも回答させて頂きましたが、 かんりの仕様が#2の方が指摘されたとおりでした。 一応、オートローダでDATテープで3世代まで管理していますので 大丈夫かなと思います。
お礼
同期の説明が不足・誤っていました。 現在は以下のように書いています。 例)xcopy J:\aaaaa\bbbbb D:\aaaaa\bbbbb /d/e/c/i/f/h/o/y 2>> %errorfile% >> %logfile% ※JはBサーバからみるとAサーバ、Dドライブのネットワークドライブを指します。 ※DはBサーバのDドライブを指します。 ※a、bの箇所はディレクトリ名です。 確認したところ#2の方が指摘されたようにAで間違って 消してしまったときにBに残っているデータで対応するために 上記コマンドの仕様にしてあるようです。 大変恐縮ですが、AサーバになくてBサーバにあるものを 削除するようなコマンドと構成について教えていただけないでしょうか。