plinkリモートでシェルスクリプトを実行するために使用していMachineBます。そして、シェルスクリプトはにありMachineA(Windows Box)ます。
C:\PLINK>plink uname@MachineB -m test.sh
Using keyboard-interactive authentication.
Password:
Using keyboard-interactive authentication.
Your Kerberos password will expire in 73 days.
そして、そのシェルスクリプトはtext file(aa.txt)MachineBで出力を生成し、それはに保存されます/export/home/uname/aa.txt
だから私の質問は-スクリプトがを使用してすべてのタスクを完了したらすぐにaa.txt fileからMachineBをコピーできる方法はありますか?または、これらすべてをWindowsバッチファイルに入れる必要がありますか?MachineAssh
したがって、問題ステートメントは次のようになります-
MachineBからシェルスクリプトを実行しますMachineA。- 次に、シェルスクリプトがタスクを完了するのを待ちます。私の場合は、出力をテキストファイルに書き込みます。
- そして、シェルスクリプトがすべてのタスクを完了した後、それはtxtファイルへのすべての書き込みを完了したことを意味し、次にそのtxtファイルを
MachineAからにコピーします。MachineB
上記のシナリオをどのように達成できるかについての提案はありますか?
アップデート:-
したがって、これがtest.shシェルスクリプトファイルのコンテンツであり、スクリプトの最後にpscpを追加した後も、次のようになりますか?
#!/bin/bash
export HIVE_OPTS="$HIVE_OPTS -hiveconf mapred.job.queue.name=hdmi-technology"
hive -S -e 'SELECT count(*) from testingtable2' > aa.txt
pscp uname@MachineB:/export/home/uname/aa.txt c:\documents\foo.txt
したがって、上記のスクリプトでハイブクエリを実行しており、その出力はファイルに保存されaa.txtています。クエリが完了して出力がaa.txtファイルに保存されるとすぐに、 fourth line of pscpaa.txtファイルがローカルWindowsマシンに転送されます。ドキュメントフォルダ内。私は正しいですか?これがプロセス全体になりますか?
そして、上記のプロセスが私が理解している限り正しい場合は、Windowsのcmdプロンプトに移動して、以下のように実行すると、まったく同じプロセスが実行されます。右?
C:\PLINK>plink uname@MachineB -m test.sh
Using keyboard-interactive authentication.
Password:
Using keyboard-interactive authentication.
Your Kerberos password will expire in 73 days.
再度更新:-
だから私はbatファイルを作成する必要があり、これが以下のファイルであると仮定すると、そのファイルtest.batのコンテンツは次のようになります-test.bat
plink uname@MachineB -m test.sh
pscp uname@MachineB:/export/home/uname/aa.txt c:\documents\foo.txt