2016-11-10 13 views
0

私はlinuxスクリプトを実行して、どのユーザーがマシンにログオンしているか、どこからどのくらいの間アイドル状態になったのかを抽出します。 これまでのところ、私はLinuxで "w"コマンドを使用しています。 TESTSERVER、またはsuperdupertestserverlinuxの "w"で8文字以上のユーザー名を印刷できない

:私は今、それは私が3人のユーザーが彼らのいずれかからログオンしている testuserを testuserを-新しい ララ-testuserを上

を記録していたユーザ名とソース

を切り捨てることに気づいたが wの出力は:

testuser pts/2 testserver  10:12 29.00s 0.15s 0.15s -bash 
testuser pts/3 superdupertestse 10:12 21.00s 0.18s 0.18s -bash 
lala-tes pts/4 superdupertestse 10:12 21.00s 0.18s 0.18s -bash 

出力の「長いリスト」を使用しています。これを修正する方法はありますか、または使用しているソースから情報を取得するのですか?ワット

答えて

1

男性:

ENVIRONMENT 
     PROCPS_USERLEN 
       Override the default width of the username column. Defaults to 
       8. 

     PROCPS_FROMLEN 
       Override the default width of the from column. Defaults to 16. 
+0

あなたは私を指すことができます右のmanページ?私はちょうどこれを持っています:https://linux.die.net/man/1/w – hek2mgl

+0

コマンドプロンプトで 'man w'と入力してください –

+0

どのバージョンの' w'を使っていますか? – hek2mgl

0

w/var/run/utmpから情報を取得します。 wのバージョンがPROCPS_USERLEN環境変数をサポートしていない場合は、utmpdumpコマンドを使用してawkでそれを解析することができます

たとえば、次のコマンドは、ユーザ名を抽出します:

utmpdump /var/run/utmp | awk '{gsub(/[][]/, "", $4); print $4}' 
+0

確か –

+0

はるかに簡単ですが、それはまたそれがどのかもしれない独自の出力フォーマットです使用しています。私はそれが私はGentooをチェックして、彼らはmanページでそれを持っている3.3.10 – hek2mgl

+0

私がwから抽出したいデータは、ユーザー名、tty、アイドル時間、からです。私はアイドル時間を取得するためにwを使い、残りのデータを最後かutmpdumpから取得する必要があるようです – Johnathan

関連する問題