プロが教える店舗&オフィスのセキュリティ対策術

solaris上のディレクトリをwindowsからrshでtarを実行して直接windows上のフォルダにtarファイルとして保存したいのですが、コマンドが不明で困っております。

過去ログ(http://oshiete1.goo.ne.jp/kotaeru.php3?q=1139234)の#1さんの回答にあったコマンドがうまくいきません。

solaris8(Ultra-5)
 ホスト名 solAAA
 バックアップしたいディレクトリ /home/hogehoge
windows2000proSP4
 ホスト名 winBBB
 保存先 C\TEMP
 保存する際のtarファイル名 backup.tar
コマンドプロンプトでC\TEMPにcd後、実行したいと考えております。

ちなみに↓のコマンドは正常動作を確認しております。
 rsh solAAA -l root "ls -lap /"

どなたか↓のコマンドの誤っている個所と、解説をお願い致します。
 rsh solAAA -l root "tar cf - -C /home/hogehoge . > backup.tar"

rshはsolAAA上で実行されるので、winBBBの指定がどっかに必要のような。。。
根本的にこのようなことは不可能でしょうか。

A 回答 (4件)

backup.tar へのリダイレクトも solAAA が処理してる?

    • good
    • 0
この回答へのお礼

そう言われてみればそうでした。ありがとうございました。リダイレクトの他に、別の問題が発生してしまいました。

お礼日時:2006/03/31 15:12

 誤っている箇所は「> backup.tar」が「""」の中にある事。

つまり、リダイレクト(tarの成果物をファイルに落とすところ)までサーバ側で処理されている。

 なので次のように書き換える。

rsh solAAA -l root "tar cf - -C /home/hogehoge ." > backup.tar

ダブルクォートの位置が変わったのが分かるだろうか。

この回答への補足

ちなみに、実行した際、エラー表示はなく1秒後くらいにプロンプトは戻ってきます。

補足日時:2006/03/31 15:29
    • good
    • 0
この回答へのお礼

リダイレクト位置の修正、ありがとうございます。
修正後、実行してみたところ、別の問題が発生してしまいました。

/home/hogehoge ディレクトリの下には、4つファイルが存在しています。それぞれのパーミッションは 644 です。
fileA と fileB は所有者が userA 且つグループが users で、
fileC と fileD は所有者が root 且つグループが other です。

修正したコマンドを実行したところ、C\TEMP に出来た backup.tar は fileB しか入っていませんでした。
原因解明可能でしょうか?

-rw-r--r-- 1 userA users 153 Mar 31 13:56 list(←fileA・・・テキストファイル)
-rw-r--r-- 1 userA users 266 Mar 28 14:43 log.log(←fileB・・・テキストファイル)
-rw-r--r-- 1 root other 208547 Mar 28 14:12 ss_file.xwd(←fileC・・・CDE環境でSSを撮った画像ファイル)
-rw-r--r-- 1 root other 1039979 Mar 28 14:15 ss_file2.xwd(←fileD・・・CDE環境でSSを撮った画像ファイル)

SS・・・スクリーンショット?スナップショット?ハードコピー?

お礼日時:2006/03/31 15:27

> 修正したコマンドを実行したところ、


> C\TEMP に出来た backup.tar は fileB しか入っていませんでした。
> 原因解明可能でしょうか?
 恐らくWindowsのrshが勝手に改行コードを変換していると思われる。ざっと調べた感じでは回避策(改行コード変換を抑制)は無いようだ。なので、rshが変換した改行コードをもう一度戻してあげる必要がある。perlを使うならこんな感じ。

C:\>rsh solAAA -l root "tar cf - -C /home/hogehoge ." | perl -pe 's/\r\n/\n/g' > backup.tar

 ただ、これだと、おおもとの/home/hogehogeに\nのファイルと\r\nのファイルが混在していた場合に対応できない。が、まぁ解凍できなくなるよりかはマシという事でご勘弁。gzしてあげる方が良いかも知れない。
    • good
    • 0
この回答へのお礼

根本的な回避策はないということですね。追加調査ありがとうございました。

お礼日時:2006/04/03 16:15

Windows付属のrshは、標準出力のLFをCRLFに書き換えてしまいますので、tarのようなバイナリを標準出力に出す使い方には向きません。


標準コマンドの範囲でやるなら、一度リモートホスト上にtarファイルを作って、それを rcp -b でバイナリコピーするという手しかないでしょう。
    • good
    • 0
この回答へのお礼

改行コードが変換された結果、うまくtarできていなかったのですね。回答ありがとうございました。

お礼日時:2006/04/03 16:11

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