![リモートコンピュータでコマンドを実行できる「on」というコマンドはありますか? [閉鎖]](https://linux33.com/image/101474/%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%81%A7%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%A7%E3%81%8D%E3%82%8B%E3%80%8Con%E3%80%8D%E3%81%A8%E3%81%84%E3%81%86%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
リモートコンピュータでメモリ、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 $i
。ssh 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ステートメントを使用してグループに基づいてコマンドを構成するために必要なすべてのコードが含まれています。