1

そのため、ネットワーク ファイル サーバー上の特定のイメージを分離し、ファイル構造を維持してバックアップするスクリプトを作成する必要がありました。これを行うには、スクリプトを実行する Linux ボックスにファイル サーバーをフォルダーとしてマウントします。ファイル サーバーは Windows ボックスです。

ファイルサーバーは次のようにマウントされました。

mount -t cifs //xxx.xxx.xxx.xxx/pictures$ -o username=imageuser,password=pa$$word images

次のようなコピー コマンドを実行すると:

cp images/somefolder/subfolder/someimage.jpg images/differentfolder/subfolder/someimage.jpg

私の質問はこれです:

「someimage.jpg」は単純に Windows マシン上のある場所から別の場所にコピーされますか、それともネットワーク経由でイメージを Linux ボックスにダウンロードしてから、Windows マシンの新しい場所にアップロードしますか?

編集:ファイルが往復する場合-それなしでそれを行う方法を知りたい、または少なくともそれを行う方法を読むことができる正しい方向に向けられることを望みます。

4

1 に答える 1

2

どちらcpsmbプロトコルも、ファイルの送信元と送信先が同じリモート サーバー上にあることを認識できるほどスマートではありません。cp は単純に通常の処理を行い、ソース ファイルからすべてのデータを丸呑み (クライアント マシンにコピー) し、サーバー上のターゲット ファイルに吐き出します。そうです、それはクライアントを介した往復になります。

この種のことに対するより良い解決策は、SSHリモートコマンドを使用して、純粋にサーバー側の操作に変えることです:

ssh imageuser@x.x.x.x 'cp sourcefile targetfile'

ファイルサーバーをローカルマシンにマウントしたままにして、実際に扱っているファイルを確認することはできますが、効率のためにsshコマンドを介してすべてのファイルのコピー/移動操作を実行します. サーバーは Windows マシンなので、おそらく cygwin をインストールして ssh サーバーを実行する必要があります。

于 2013-07-17T14:37:04.167 に答える