FTPサーバに接続しているユーザの情報は、ftpwhoというコマンドで表示できる。
これを一覧表としてWEBページに出力するようなスクリプトを書いてみた。
使ってるftpdによって表示されるフォーマットが多少違うみたいだけど、
俺の環境vine 3.2のproftpd-1.2.10-0vl1.5で作る。
接続ユーザがいる場合、
$ ftpwho
standalone FTP daemon [2639], up for 12 days, 16 hrs 22 min
15835 genkikko [ 3m9s] ( 23%) RETR /home/genkikko/public_html/2008.gif
15840 photo [ 0m53s] 0m48s idle
Service class - 2 users
こうなる。standalone FTP daemon [2639], up for 12 days, 16 hrs 22 min
15835 genkikko [ 3m9s] ( 23%) RETR /home/genkikko/public_html/2008.gif
15840 photo [ 0m53s] 0m48s idle
Service class - 2 users
ここで、genkikkoはファイル転送中、photoはアイドル状態。
接続ユーザがいない場合は、
$ ftpwho
standalone FTP daemon [2639], up for 12 days, 16 hrs 48 min
no users connected
こうなる。standalone FTP daemon [2639], up for 12 days, 16 hrs 48 min
no users connected
ということで、分けるべきは、アイドル・転送中・ユーザなしの3パターン。
あと、
standalone FTP daemon [2639], up for 12 days, 16 hrs 48 min
これの2639ってのはサーバのPID、up forはftpdの起動時間と思われるので、気分的にこれも抽出して表示するようにする。
・ソース
・実行結果