Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> LinuxシステムFAQ >> Linuxのスクリプトは、自動的に多くのことをやって、

Linuxのスクリプトは、自動的に多くのことをやって、

  

Linuxプログラマーは、ユーザー権限に厳しい制約の下でのLinuxへのこの動きは確かなし他人のパスワードを入力するために使用するパスワードを入力するようにスーパーユーザーとして、パスワードを入力する権限を越えています示さ
として、その上、リモートホストへの別の例のFTP、SSH接続を実行し、問題がある


だから、あなたはスクリプトを実行する方法の実行を自動化されたパスワードを入力する必要がありますか?たとえば、あなたがスクリプトSCP文を持って、この文は、手動でそれがに向け

sshやscpコマンドを
とき、誰かがそれをスクリプトで信頼関係を構築することである答えるかもしれパスワードを入力するように行うことができない、信頼関係の確立にはsshあなた自身のBaiduのグーグル、コマンドのちょうど2本のシンプルなラインが得ることができる方法が、これは従来のソリューションではありません、FTP接続がMeizheまた、あなたが特定のコマンドを実行するために行くことができない場合は、各与えます手動今日のテーマの本来の意図から外れたのsshの信頼を設定するために接続するホストされている、今日はスクリプトで自動パスワードで、私たちが想像することができると言う、とき、スクリプトで自分のパスワードを設定するには、よりエレガントな方法でなければなりませんあなたが
期待を使用する必要があり、この効果を達成するために、に入力する必要があるときに、画面の相互作用が自動的に入力された

インストール


<前>にsudo yumを期待してインストール、次のようにCentOSのインストール下のコマンドは、非常に簡単です

Macユーザーとして、あなたは自作をインストールすることができます(ご自身グーグル、自作をインストールする必要があります)

 BREW期待してインストールします。

テスト・スクリプト

私たちは、単純な足を書きましたこの実現のscpファイルのコピーには、次のように、保存されているスクリプトでパスワードを設定scp.exp

#は/usr /binに/expectsetタイムアウト20if {[llengthする$ ARGV]< 2} {プット"使用!: "プット" $ argv0 LOCAL_FILE REMOTE_PATH"出口1} LOCAL_FILEセット[LINDEX $ ARGV 0] REMOTE_PATHセット[LINDEX $ ARGV 1]設定のpasswd your_passwdset passwderror 0spawn SCP $ LOCAL_FILE $ remote_pathexpect {" * assword:*" {もし{$ passwderror == 1} {プット" passwdのエラー"ある出口2}設定されたタイムアウトセット1000 passwderror 1送信" $のpasswdの\\ R" exp_continue}" * ES /いいえ)*"? {送信" YES \\ R" exp_continue}タイムアウト{プット"接続でタイムアウト" 3番出口}} 

最初の行は、非常に重要です通常、私たちのスクリプトの最初の行が#/binに/bashのですが、ここではあなたのマシンであることに注意してください!このスクリプトは、bashの実行によって解釈ではなく、説明することを期待実行されることを示し、プログラムへのパスを期待するので、コード法とシェルスクリプトは、独自のパスワードを設定し、次のコマンドを実行しyour_passwd passwdのを設定している、同じではありません
<前> ./scp.exp ./local_fileのユーザ@ホスト:/XX /YY /

接続タイムアウト&'です;エラー&'があれば実行権限がscp.expを確保実行する前に、ローカルファイルへの最初のパラメータは、第二は、リモートホストのディレクトリがあり、スクリプトを実行し、長い第2ラインセットをタイムアウトを設定することができますタイムアウト20秒でタイムアウトを設定することができます。
を次のようにスクリプトの実行結果は、


あなたは
を行うことができますどのような

見つけなければならない慎重な学生が、実際には、ちょうどあなたのパスワードを入力し、端末とインタラクティブなメカニズムを提供することを期待端末は、入力を遮断する際に必要な申込書、入力は、以前に2つのスクリプトの対話シナリオに設定され、期待スクリプトによって自動的に行うことができ、一つは端末プロンプト"あるパスワード:"、パスワードを入力するときだけでなく、スクリプトscp.exp効果は<


この
で実行し、リモートホストが接続を確立する最初のものである場合、一方はQUOT、&するように要求されない。はい/いいえ)"?入力' '&はい私たちは自動化の効果を達成できるように、Pは>私たちは、入力端末プロンプトのコマンドに応じて設定することができます。唯一の行に上記のスクリプトYihuhuhuapiaoによると、他のインタラクションシナリオを処理するためとして、

Copyright © Windowsの知識 All Rights Reserved