5

リモートサーバーに自動的にログインし、サーバー上のファイルを取得するスクリプトを作成したいと思います。スクリプトはすでにサーバーにログインしていますが、コマンドはそのマシンでは実行されません。リモートサーバーから切断すると、コマンドはクライアントマシンで実行されます。

!/bin/sh
ssh -o PreferredAuthentications=publickey brjones@server.com
cd ~/folder
"i would like to grab file and copy it to client machines folder"

編集:気づいたかどうかはわかりませんが、sshとkeygenerationを使用したリモートサーバーへのパスワードなしの接続を使用しています。アイデアには感謝していますが、クライアントのスクリプトを使用して、リモートサーバーでコマンドをパイプ処理したりコマンドを実行したりすることを検討しています。リモートサーバーがクライアントスクリプトにアクセスできないことに気付きましたが、ssh接続を介してコマンドをパイプできるかどうか興味がありました。

4

10 に答える 10

14

ssh(「セキュアシェル」)ではなく、scp (「セキュアコピー」)を使用する必要があります。

于 2009-06-16T12:31:12.950 に答える
14

また、リモート サーバーでスクリプトを利用したくない場合は、次のことを試してください。

ssh thehost 'cd /tmp; ls; echo Hello world, I am `hostname`'

SCP を使用しないコピーの場合:

ssh localhost 'cat /bin/bash' > local_bash
于 2009-06-16T14:19:59.393 に答える
5

ファイルの転送のみが目的の場合は、scp を使用する必要があります。しかし、そのリモート ホストに特定のスクリプトを持たずにリモート ホストでいくつかのコマンドを実行するには、次のように stdin を使用するだけです。

!/bin/sh
ssh -o PreferredAuthentications=publickey brjones@server.com << EOT
cd ~/folder
echo "hello" > hello.txt
...
EOT
于 2009-06-17T09:46:11.360 に答える
3

このように使用sshして、リモートマシンでスクリプトを実行する必要があります。

ssh user@server exec /path/to/script/script.sh

ログインscript.shから指定されたパス上のサーバーで利用可能な場所。user


スクリプトがサーバーに存在しないがローカルマシンで利用できる場合(および2台のマシン間に共通のNFS共有スペースがない場合)、次のscpようにスクリプトを送信する必要があります。

scp script.sh user@server:/path/to/script/

ここで、サーバーファイルを取得する特定のケースでは、実行する必要があります。

scp user@server:/path/to/file/filename .

他のいくつかの答えがすでに示唆しているように。

于 2009-06-16T12:33:12.930 に答える
2

スクリプト内のsshはそのようには機能しません。ただし、次のように、コマンドをsshの引数として指定することにより、リモートサーバーでコマンドを実行する機能があります。

ssh brjones@server.com do_foo.sh

サーバー上でdo_foo.shスクリプトを実行します

しかしあなたの状況では、あなたが本当に探しているのはSCPのようです。

于 2009-06-16T12:32:53.680 に答える
2

Tiemen による回答に加えて、もちろん、ローカル スクリプトからコマンドを次のようにパイプ処理できます。

ssh thehost < commands.sh
于 2013-11-12T16:06:07.560 に答える
1

SCP?Remote は、読み取り専用ファイル システムを備えたアプライアンスです。スクリプトを置き去りにしたり、ssh を複数回呼び出してクリーンアップしたり、複数回呼び出して一度に 1 行ずつ実行したりしたくありません。リストは続きます...

Yarek Tによる優れたソリューション:

引用符やエスケープを少しいじる必要があるかもしれませんが、リモートへの単一の接続とスクリプトがローカルのままであるため、仕事は完了します。

于 2011-02-02T02:28:13.327 に答える
0

scpを使用してみませんか?

于 2009-06-16T12:31:43.747 に答える
0

あなたが与えた特定の例をより良く、より簡単に行う方法を、何人かの人々がすでに説明しています。

リモート インタラクションのスクリプトがどうしても必要なexpect場合は、 の使用を検討してください。

于 2009-06-16T14:03:35.557 に答える