SSブログ

RLoginで配列のサンプルコードがなかったので自分でスクラッチした [Linux]

WindowsのSSHクライアントのRLoginで独自スクリプトが使えるんですが、いかんせん本家サイトでも情報が不足している。

https://kmiya-culti.github.io/RLogin/script.html#I3

配列とforeachがあるなら、プログラミング的に楽できそうだと思って、サンプルコードが欲しくて「rlogin スクリプト foreach」あたりでググってみてもシェルスクリプト関係ばっかり出てくる。こりゃ探してもなさそうだなと思い、いろいろ試行錯誤しながら配列を使ってみた。

・配列の例
users = ["user01", "user02", "user03" , "user04"];

foreach ( val in users ){
  sputs(sprintf("ls /home/%s/", val));
}

簡単すぎて実用性がなくてすいません。ここでは自分のマシンのユーザーに合わせて作ったりしてほしいのだが、su root状態でスクリプトを走らせるとまんべんなくいろいろなユーザーに処理を施すことができる。

rootなのでファイルとかを作ってしまうとrootがオーナーになってしまったりして面倒だが、もともとユーザー名をスクリプトの中で持っているので、
sputs(sprintf("su %s\n", val));

とかで処理すると良さそう。

延々と違うサーバの同じユーザーの処理とかやらされるのだったら、スクリプトを一個作ってしまえばそれを走らせるだけで処理が終わる。初めにrootにならないといけないのは面倒だけど、sudoとかで済むなら、スクリプトを走らせる前に適当なコマンドをsudoで実行してパスワードを入力しておけばいけると思う。

Linuxサーバ管理が面倒になったときにどうぞ。本来ならツールとかLinuxサーバ側に入れて対応すべきなのかもしれないけど、昔からのサーバが腐るほどある環境だといちいちツールとか入れるよりも、RLoginの方でスクリプトを走らせた方が手っ取り早いので面倒がない。

ちなみに最初の頃に配列は
users[] = "user01"
users[] = "user02"
users[] = "user03"

と書いていたんだけど、こっちの方が面倒なので上の方で書いた方がいいし、この書き方で書くときは後で付け加えたくなった時なんだろうなと思ったり。

コメント(2) 
共通テーマ:パソコン・インターネット

コメント 2

nicnicshii

なんか要素が2以下の配列の挙動がおかしい。今度本家サイトに聞いてみるか…
by nicnicshii (2022-07-14 19:19) 

nicnicshii

users[] = "user01"
の書き方だと3以下でエラーがでて、
users = ["user01", "user02", "user03" , "user04"];
の書き方だと、4以下でエラーが出る。
本家サイトでバグ報告済み。いづれ直るでしょう。
by nicnicshii (2022-07-25 12:01)