このスクリプトを使うと、時計以外にも役立つ情報を表示することができる。たとえば、uptimeコマンドを使ってCPUの平均負荷を監視したいとする。
uptime 09:19:56 up 1 day, 1:54, 4 users, load average: 0.29, 0.39, 0.42
最後の3つの値が、それぞれ過去1分間、5分間、15分間の平均負荷だ。これらの値を取り出すにはgawkコマンドを使うとよい。
uptime | gawk '{print $(NF - 2), $(NF - 1), $NF}'
0.72, 0.54, 0.47
NFは出力されたフィールドの総数で、$NFは最後のフィールドの値である。clock.shで次の行を変更する。
cmd=`date +"%H:%M:%S %F"`
これを次のようにする。
cmd=`uptime | gawk '{print $(NF - 2), $(NF - 1), $NF}'`
次のようにして時間と日付を残してもよい。
cmd=`date +"%H:%M:%S %F" ; uptime | gawk '{print $(NF - 2), $(NF - 1), $NF}'`
文字列の長さが19キャラクタ以内になっているので、wcコマンドで表示する位置を決めるようにするとよいだろう。変更するのは次の行だ。
C=$((`tput cols` - 19))
これを次のようにする。
C=$((`tput cols` - (`echo $cmd | wc -c` - 1) ))
出力の長さは「wc -c」(wcに-cオプションを指定すると、パイプで送られた文字列のキャラクタ数がカウントされる)で算出する。-1は、$cmdの出力の最後の\rを除外するためだ。
その他にも、使用量が増えていくパーティションの全体のサイズや利用可能な容量をdfコマンドを使って表示したり、オンラインのユーザーをuptimeまたはwコマンドで表示したり、psでプロセス数を表示したりすることができるだろう。Samba、Apacheなどさまざまなサーバーには状態通知コマンドがあるので、この方法で情報を取り出して表示できる。イマジネーションを働かせて変更を加え、オリジナルバージョンのclock.shを作ってみて欲しい。
Sergio Gonzalez Duranは、Linuxの管理、システム開発、ネットワークセキュリティのカウンセリングに従事している。また、Linux講座の講師を務め、スペイン語向けのLinuxやオープンソースWebサイトのlinuxtotal.com.mxを公開している。
