CentOSはexpectを使用してスクリプトやコマンドをバッチでリモート実行します

CentOSはexpectを使用してスクリプトやコマンドをバッチでリモート実行します

サーバーへのファイルのアップロード、ソフトウェアのインストール、コマンドやスクリプトの実行、サービスの再起動、サーバーの再起動など、サーバーを一括して操作する必要がある場合があります。これらを一つ一つ手動で操作すると非常に面倒で、人的資源の無駄になります。

このとき、expect を使用してターゲット サーバーに指示を送信し、バッチ操作を実装できます。

次の例では、centos上のファイルを他のサービスプロバイダーにバッチコピーし、対応するコマンドを実行します。

1. CentOSにExpectをインストールする

yumインストール期待

2. 期待スクリプトcopyfilebatch.shを記述する

次のスクリプトは、イントラネット IP アドレス 192.168.0.102 ~ 192.168.0.112 を持つサーバーに rc.local ファイルをコピーします。コピーが成功したら、chmod コマンドを実行してサーバーをそれぞれ再起動します。

#!/usr/bin/expect -f
パスワードを設定する rootpassword

{i 102 に設定} {$i <= 112} {i を増分} {
  IPアドレスを「192.168.0.$i」に設定する
  「$ip」を置く


  ssh -o StrictHostKeyChecking=no $ip を実行します。
  タイムアウト3を設定
  「root@$ip のパスワード:」を期待します
  タイムアウト3を設定
  「$password\r」を送信
  タイムアウト3を設定
  「exit\r」を送信


  scp /home/install/rc.local root@$ip:/etc/rc.d/rc.local を起動します。
  タイムアウト3を設定
  「root@$ip のパスワード:」を期待します
  タイムアウト3を設定
  「$password\r」を送信
  タイムアウト3を設定
  「exit\r」を送信




  ssh root@$ip を生成する

  期待する {
  "*はい/いいえ" { "はい\r"を送信; exp_continue}
  "*password:" { "$password\r" を送信 }
  }
  期待する "#*"

  #実行するコマンドは「chmod +x /etc/rc.d/rc.local\r」を送信します
  「再起動\r」を送信
  「exit\r」を送信
  EOFを期待する
}

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • CentOS7 で .sh スクリプトを実行するときに表示される「構文エラー: 予期しないファイルの終わり」メッセージの解決方法
  • CentOS6で定期的にjarプログラムを実行するスクリプトをcrontabで実行する
  • CentOS 6.5 の設定 ssh キーフリーログインで pssh コマンドを実行する方法の説明
  • CentOS7でPHPスケジュールタスクを実行する方法
  • CentOS 7 で crontab を使用して定期的にタスクを実行する方法の詳細な説明
  • Centos7の起動時に/etc/rc.localが実行されない問題を解決する
  • CentOS で指定されたスクリプトを実行するスケジュールされたタスクを設定する方法

<<:  MySQL ユーザー権限管理の分析例

>>:  ユニアプリとミニプログラム(画像とテキスト)を下請けする方法を教えます

推薦する

MySQL データベースの文字化け問題の原因と解決策

序文データベースのデータを表示すると、文字化けした文字が表示されることがあります。実際、どのようなデ...

MySQLデータテーブルの基本操作:テーブル構造の操作、フィールド操作例の分析

この記事では、テーブル構造操作やフィールド操作など、MySQL データ テーブルの基本的な操作につい...

Excelアップロード機能を実現するVue + iViewの完全コード

1. HTML部分 <Col span="2">ファイルをアップロー...

MySQL 5.7.17 のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 5.7.17のインストールと設定方法を参考までに紹介します。具体的な内容は...

MySQL スケジュールタスクの実装と使用例

この記事では、例を使用して、MySQL スケジュール タスクの実装と使用方法を説明します。ご参考まで...

MySQL インデックス データ構造の詳細な分析

目次概要インデックスデータ構造バイナリツリー赤黒木BツリーB+ツリーハッシュ索引InnoDB インデ...

tdが空の場合に境界線を表示する方法

以前、CSS を使用してテーブルの border + bordercolordark + borde...

IE8 と Chrome でテーブルの幅を修正する方法

IE8 や Chrome で上記の設定を使用すると、画面の最大幅に合わせて表示が統一され、各列の幅は...

シンプルなウェブ計算機を実装するJavaScript

背景私は新しいプロジェクト チームに配属されたので、プロジェクトでは js を使用する必要があります...

システム エラー 1067 のため、MySQL 5.6 解凍バージョン サービスを開始できません

今日午後ずっと私を悩ませたバグを記録する半月前から始めましょう。それから.................

データバインディングとリストデータの表示にはVue3を使用する

目次1. Vue2との比較1. Vue3の新機能2. Vue2とVue3の応答原理の比較3. 配列の...

antd+reactプロジェクトをviteに移行するためのソリューションの詳細な説明

Antd+react+webpackは、多くの場合、Reactテクノロジースタックに基づくフロントエ...

MySQLデータベースで列を追加、削除、変更する方法

この記事では、例を使用して、MySQL データベースの列を追加、削除、および変更する方法について説明...

動的な背景グラデーション効果を実現するCSS3

CSS3 を学ぶということは、新しい機能と基本的な理論に慣れることを意味します。この記事では、ケー...

MySQLの主キーと外部キーの使用と説明を簡単に説明します

目次1. 外部キー制約外部キーとは何ですか?外部キーを使用する条件:外部キーの定義構文は次のとおりで...