リモートコンピュータでコマンドを実行できる「on」というコマンドはありますか? [閉鎖]

リモートコンピュータでコマンドを実行できる「on」というコマンドはありますか? [閉鎖]

リモートコンピュータでメモリ、CPU使用率などを見つけることができるbashスクリプトを見つけました。これを行うには、次の技術を使用します。

i=RemoteServerName

TOTALMEM=`on $i cat /proc/meminfo | grep MemTotal | awk -F ' ' '{print $2}' `

インターネットで検索してみると、誰もがこれを達成するためにssh username@RemoteServerNameを使用しているようです。私はこの「on」がどのように機能するのか理解していません。スクリプトはうまく機能しますが、スクリプトの外部でコマンドを実行すると、次のように表示されます。 -bash: on: command not find..

マニュアルページを検索しましたが、何も見つかりませんでした。また、「type on」コマンドを使用して、「on」と表示されるエイリアスを検索しました。しかし、何も見つかりませんでした。この"on"がリモートシステムでコマンドを実行する方法を理解するのに役立ちます。 「on」というコマンドはないようです。助けてください。

ローカルシステムとリモートシステムの両方がRedhat 6.2です。

ベストアンサー1

見つけました。私が最初にしたことは、私の(ルート)環境のどこでも「on」という別名を検索することでした。ところで、このスクリプトがサーバーでどのように使用されているかを確認しました。これは、他の多くのリモートサーバーの時間ごとのリソース使用率を生成するために使用されます。したがって、crontabの一部である必要があります。はい、やりました!このスクリプトは、root以外のユーザー用のユーザー固有のcrontabの一部です。

スクリプトには複数の行があります。

PATH=$PATH:$HOME/bin
export PATH

このユーザーの ~/bin にon $issh servername

自分で使用するのではなく、この追加手順を実行する理由がわからない場合は、ssh servername次の説明を参照してください。上記のコード形式は単なる形式であり、実際のスクリプトでは、次のように複数のサーバー(グループで区切られています)のレポートを生成するために使用されます。

for i in $GROUP1 $GROUP2 $GROUP3
do 
   TOTALMEM=`on $i cat /proc/meminfo | grep MemTotal | awk -F ' ' '{print $2}' `
   #other report generation and formatting code here
done

GROUP1、GROUP2などは、類似サーバーのホスト名を含むリストです。

ssh username@servernameグループに属するサーバーには、ログインに共通の資格情報があります。 "on"ファイルには、Caseステートメントを使用してグループに基づいてコマンドを構成するために必要なすべてのコードが含まれています。

おすすめ記事