あなたはftp、telnet、およびsftpに言及しました。これらのスクリプトは、expectのようなスクリプトやAの複雑なスクリプトを使ってスクリプト化することができます。しかし、このunixトリックをAからすべて実行するには、AからBへのsshが可能である必要があります。 BからCへ。これらの接続にパスワードが必要ないように、ID認証の設定が必要です。 (あなたは、両方の接続のためのAのアイデンティティのエージェント転送を使用することができます。)その後にこのような何かを実行します。
B上のファイルを格納することなく、Bを経由して、AからCへファイルを移動します
cat file-on-a | ssh B "ssh C 'cat > file-on-c'"
Cygwinの一部であるsshとcatを使用する前に、私はこの種のことをWindowsで行っています。私はどのようにそのコマンドの作品約2ワードを言っているはず:私はそれが他のウィンドウのツールでどのように動作するかをよく知っている...
編集しないでください。 sshプログラムは、パイプを提供し、ローカルマシンとリモートマシンの間でデータを前後に移動します。通常、このパイプはリモートエンドのシェルに接続され、より良いセキュリティを除いてtelnetと同じ目的を果たします。ただし、パイプは何でも使用できます。 sftpユーティリティは、そのパイプを使用してファイルを移動します。 sshコマンドは、リモートシステム上で実行するコマンドを取ることができます。たとえば、ssh B ls
はBに接続し、lsを実行して結果を返します。上記のコマンドが行うことは、sshからBへ、そしてBにCと接続するsshを実行するように依頼します。これは、パイプからA、B、Cへのパイプを与えます。 cat
プログラムはファイルを読み取り、標準出力に書き込みます。ファイル名が指定されていない場合は、標準入力を読み取ります。cat file-on-a
A
マシン上のファイルを読み取り、ssh
コマンドに書き込みます。 cat > file-on-c
は送信されたデータを読み取り、> file-on-c
の部分(シェルのおかげで)はファイルfile-on-c
に書き込みます。再び
ではなく、これはあなたの環境ではオプションである場合に確認してください。それが役に立てば幸い。
出典
2012-03-28 02:22:23
rob
あなたのファイルはAにあり、それをBにftpしたい、そしてBからsをCに変換したいですか? – dhchen
はい。 BのみがCに接続でき、ファイルがAにあるので、これがシナリオです。 – lamwaiman1988
Bにスクリプトを書き込めますか? – dhchen