アプリ版:「スタンプのみでお礼する」機能のリリースについて

サーバのデータをNASにバックアップしている途中に誤ってシャットダウンしてしまいました.

mvコマンドは,逐一移動→削除,..,,移動→削除をくりかえしているのでしょうか?

それとも,すべてのファイルを移動してから元データを削除しているのでしょうか?

A 回答 (3件)

mv -R / /nas


といった移動であれば、個々のファイルはコピー→削除を繰り返しています。
移動中にOSをシャットダウンしたり、コマンドを強制的に停止した場合、移動中のファイルはコピー元に残ります。
(移動が完了するまで元ファイルの削除は行われません)
ですので、強制的なシャットダウンによってファイルシステムが壊れてfsckが必要になるようなケースを除けば、欠損しているファイルはないハズです。
もし元ファイルが削除され、コピー先にも存在しないような場合は、Linux系のOSであればlsofで復元できることもあります。
参考URLを参照にしてみてください。

参考URL:http://www.itmedia.co.jp/enterprise/articles/061 …
    • good
    • 0

(Linuxということで、GNU coreutils の mv を仮定します。


他のUNIXでは違うかもしれません)

ご質問のケースでは、どのようなコマンドを打ったか、どの段階でシャットダウンしたかで、微妙に結果が変わります。mv コマンドは -v オプションをつけることで、mvコマンドが実際に何を行ったか詳細なログを出力できるので、実験してみていただけると分かりますが、例えば、

mv -v サーバ上のディレクトリ NAS上のディレクトリ

というコマンドを実行した場合は、

> すべてのファイルを移動してから元データを削除

これが正しいです。この場合 mv 実行中にサーバをシャットダウンすると、次のいずれかの結果となるはずです。

1. 全部のファイルの移動(コピー)する前に
シャットダウンした。
⇒ 移動元には変更なし、
移動先は一部のファイルしかコピーされてない

2. 全部のファイルを移動完了し、移動元の
ファイル(群)を削除中にシャットダウンした
  ⇒ 移動元には一部のファイルしか残っていない、
移動先には全部のファイルがコピーされている。

1. だったのか 2. だったのか判定する方法は、(移動元と移動先のファイル/ディレクトリを変更していないという条件で)移動元の移動先の全ファイルのリストを比較する方法が考えられます。
・移動先に無いファイルが、移動元に有るなら 1. のケース
・移動元に無いファイルが、移動先に有るなら 2. のケース
ということになります。



一方、

mv -v サーバ上のディレクトリ1 サーバ上のディレクトリ2 NAS上のディレクトリ

のように、移動元が複数あるような書き方をすると、
「ディレクトリ1とその中の全ファイルをコピー後、ディレクトリ1を削除し、次にディレクトリ2とその中の全ファイルをコピー後、ディレクトリ2を削除して終了」
という動作となります。
    • good
    • 0

こんにちは


>mvコマンドは,逐一移動→削除,..,,移動→削除をくりかえしているのでしょうか?

 プログラマー的には物理ドライブが変わらない限り、リンク(ファイルの有りかを示すインデックスとか)を変えるだけで物理的な操作(コピーや削除)はしないものですが。。。
    • good
    • 0

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