FTPプロンプトからプログラムを実行することはできますか?


6

私は、UNIXまたはシェルスクリプト(真実を話す初心者)に比較的慣れていません。ここに取引があります。リモートUNIXサーバーで実行されるBIソフトウェアがあります。Windows i上のSASクライアントを介していくつかの分析を実行し、そのUNIXサーバーに自動的にプッシュする必要があるフラットファイルを作成します。rsubmitでUnixコマンドを実行するSAS Xコマンドでは問題ありませんが、FTPプロンプトでファイルをアップロードしますFTPサーバーにログオンしたら、「sh」コマンドを使用する

ftp -nv << -EOF > /AutomatedReports/Flatfiles/log/sendInv.log
open biserver.myserver.com
user biuser pass1234
prompt
lcd  /container/AutomatedReports/KPI_Flatfiles/
cd  /container/AutomatedReports/apps/flatfiles
put kpi_new_inv.txt
put instock_trend.txt
quit

上記のコードはUNIXに送信されますが、

sh edastart -x "EX test"

エラーが発生しました。何か間違ったことをしているかどうかを知りたいだけなので、別の方法を探すことができます。ヘルプ、ガイダンス、または回答は大歓迎です。

回答:


5

いいえ、FTPプロトコルを使用して、遠くのUnixサーバーでプログラムを起動することはできません(奇妙な拡張機能を使用しない限り)。

sshを使用できないのはなぜですか。つまり、scpを使用してファイルを遠いUnixサーバーにコピーし、sshを使用してそのサーバーにログインします。


1
chiark.greenend.org.uk/~sgtatham/puttyは、Windows用のSSHクライアントです。

おかげで、私はコンピューターにパテをインストールしていますが、問題はそのプロセスを自動化したいことです(sasプログラムはスケジュールされたタスクで実行されます)。正確に私が避けたいのは、SASからdosコマンドまたはバッチファイルを実行できますが、パテがマシンにインストールされていない場合に実行できる方法はありますか?

1

任意のコマンドを実行できる場合、それはFTPサーバーの重大なセキュリティ侵害になります。FTPはファイル転送方法のみです。リモートで実行するには、代わりにSSHを使用します。


わかりました...知らせてくれてありがとう..サードパーティ製のツールをインストールせずに、Windowsから(認証付きで)シェルスクリプトを実行する方法はありますか?

@ Rafael.IT:私が知っていることではありません。chiark.greenend.org.uk/~sgtatham/puttyからPuttyを取得し、SSHサーバーがリモートホストにインストールされていることを確認します。安全にファイルを転送するには、FTPからSFTPに切り替えてください。
フレッドフー

私のマシンにパテがあり、リモートホストにSSHサーバーがあるので、シェルスクリプトをリモートで実行する方法がありますが、このプロセスを自動化する必要があります...提案はありますか?

1

他の人が言ったようにパテでシェル上でそれを行います。プロセスを自動化する必要がある場合は、cronジョブやトリガーファイルを設定してみませんか?


cronジョブはUNIX側にあります

1

これを正確に実行して、リモートLinuxホストでHiveクエリを実行し、その結果をSASプログラムにパイプで戻します。SASコードからの出力がない場合は、STD出力を収集することをお勧めします。チェックを実行して、すべてが正常に実行されたことを確認できます。

filename hive pipe 'C:\Progra~1\ICW\bin\ssh.exe server.name.local -l username -i c:\id_rsa " ls "' lrecl=80;

data x ;
  length line $80.;
  infile hive truncover;
  input @1 line $80.;
run;

使用したサードパーティの実行可能ファイルは次の場所にあります。

http://www.itefix.no/i2/copssh

RSAキーを生成したので、ログインするたびに完全な資格情報を提供する必要はありませんが、それを理解できるか、またはパラメーターとして通常のユーザー名パスワードを提供できると確信しています...

結果をパイプで返さない場合は、SAS「X」コマンドを使用して上記のリモートコマンドを実行することもできます。

頑張ってR


1

TCL / Expectの使用を検討してください。TCLのExpectモジュールは、ログインプロンプトやパスワード、ftpコマンドの処理など、コンソールコマンドの自動化に優れています。Expectスクリプトを使用すると、完全なFTPログインセッションを自動化できます。手動でできることはすべて、Expectを介して実行できます。基本的に、シェルに実行するコマンド、および「expect」に対するプロンプトまたは応答を指示します。期待されるものは、ハードコーディングされた値または正規表現として指定できます。Expectを使用する1つの例は、Ciscoルーター(ユーザーID /パスワード)へのログイン、ルーターの構成、いくつかのテストの実行、結果の検証、およびルーターからの自動テストのスクリプトを作成することです。


0

すでにPuTTYに慣れている場合は、同じ開発者のPlinkを使用してください。SSHを介したコマンドのリモート実行をサポートし、自動化されたスクリプトで使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.