1.配信システムを導入します
今日では、主に負荷分散を使用して大企業の、そして時にはので、いくつかのプログラムの一部を変更したい、またはいくつかのバグが修正されるように、すぐにコードを更新、などは、ほんの数サーバーならば、それは良い変更プログラムのコピーを持っているために、非常に簡単です過去、またはrsyncのリモートプッシュした後、または何のことができます。NFS共有をオンラインで、しかし、何十何百ものがある場合は、そのアプローチは、あなたがバルク分散タスクに期待することができ、あまりにも面倒だろう。
-
期待:ソフトウェアスイートの自動インタラクティブ機能、Tclのに基づいてスクリプト言語は、単純な構文を持っています。
-
特徴:自動リモートマシンにログインすると、自動的にコマンドを実行し、組み合わせて、およびシェルスクリプトは、完全に自動化することができます。
-
注:同じ自動ログインとコマンドの自動リモート実行が非キー認証パスワードを使用する場合に達成することができます。あなたは鍵認証を使用することはできません。しかし、我々は他の方法を持っていません。だから、この時点でのみログインして互いに機械アカウントとパスワードを知っているし、リモートコマンドによって達成することができるスクリプトを期待しています。
リモートログインスクリプト2.expect
1.コマンド期待するソフトウェアスイートをインストールします:yumの-yを期待インストール
2.完全なリモートログインし、スクリプトの実行
ホスト:192.168.2.168
リモートエンド:192.168.2.188
(1)ホスト側では、は/ usr / local / sbinに/に、スクリプトを作成することを期待; VIM 1.expect
(2)SSH 192.168.2.168とリモートエンドに直接ログインします
[ルート@のying01 sbinの]#sshを192.168.2.188
パスワードを[email protected]'s:
最終ログイン:192.168.2.168から木曜8月2日午前8時28分02秒2018
[ルート@ ying02〜]#ログアウト
192.168.2.188への接続が閉じました。
(3)自動的にリモートエンドに接続する1.expect実行許可を与えます。
[ルート@のying01 sbinの]#./ 1.expect
-bash:./:ディレクトリがあります
[root@ying01 sbin]# ./1.expect
-bash: ./1.expect: 权限不够
[root@ying01 sbin]# chmod a+x 1.expect
[root@ying01 sbin]# ./1.expect
spawn ssh [email protected]
[email protected]'s password:
Last login: Thu Aug 2 15:22:34 2018 from 192.168.2.168
为了让远程登录时候出现提示,可以清空/root/.ssh/known_hosts目录;然后执行1.except,可以看到脚本,自动执行
清空密匙:
自动执行了:
3.
3. expect脚本远程执行命令
在主机端建立2.expect,查看其脚本
同样需要授予2.expect 访问权限:chmod a+x 2.expect
执行2.expect: #./2.expect
在远程端查看执行的情况:
4. expect脚本传递参数
expect脚本可以接受从bash传递过来的参数.可以使用[lindex $argv n]获得,n从0开始,分别表示第一个,第二个,第三个….参数
给予可执行权限,并定义参数后执行脚本
#chmod a+x 3.expect
执行命令及结果: