自鯖の欲しい情報

3 min read

k的に楽にプロセスのListenしているポートを確認し、手軽に使用ポートとサービスを出力したい
の続きのような記事。

こんにちは、無能です。
どうしてもかんたんなシステム情報が欲しい。
そして可読性があまりに低すぎるコマンドが出来上がったので、あとからwhichの戻り値から判定して勝手に判定してくれるようにしよう。。。

こんなパイプの繋げ方して、可読性がまるでないのでそれぞれ分解。
普通にこんなワンライナーでやったらいろんな人にブチ切れられるので駄目。
でもついついCLI上が汚れるのはhistoryの魔力だろうか____

長ったらしいときは

set -o vi

で操作をviモードで行うと幸せになれる。矢印キーがない場合、キーマップ設定前にも有効。

FreeBSD

echo -e "`sysctl -n hw.model`\n`printf "%.2f GB\n" $(echo "scale=2; $(sysctl -n hw.realmem) / 1024 / 1024 / 1024" | bc)`\n\n`df -h`\n" &&  lsof -i -P -n | grep "LISTEN" |  awk '{print $1 "," $3 "," $9 "/" $8}' | sort | uniq | column -t -s ","

Image

sysctl -n hw.model CPU情報
printf "%.2f GB\n" $(echo "scale=2; $(sysctl -n hw.realmem) / 1024 / 1024 / 1024" | bc) メモリ df -h ディスク lsof * リッスンポート

GNU/Linux

echo -e "`grep "model name" /proc/cpuinfo | head -1`\n`awk '/MemTotal/ { printf "%.2f GB\n", $2 / 1024 / 1024 }' /proc/meminfo`\n\n`df -h`\n" &&  lsof -i -P -n | grep "LISTEN" |  awk '{print $1 "," $3 "," $9 "/" $8}' | sort | uniq | column -t -s ","

Image
grep "model name" /proc/cpuinfo | head -1 CPU情報 awk '/MemTotal/ { printf "%.2f GB\n", $2 / 1024 / 1024 }' /proc/meminfo メモリ df -h ディスク lsof * リッスンポート

あとは&&で次の実行に渡しているが、全てcolumnコマンドに合わせて見やすく整形出来るようにしていかなければいけない。
実際テストとしてワンライナーで行っているが、あとからコードの中ではちゃんと一つ一つが実行出来る形にしていこう。
モザイクナシのThinkPad X1での実行結果

$  echo -e "`grep "model name" /proc/cpuinfo | head -1`\n`awk '/MemTotal/ { printf "%.2f GB\n", $2 / 1024 / 1024 }' /proc/meminfo`\n\n`df -h`\n" &&  lsof -i -P -n -l | grep "LISTEN" |  awk '{print $1 "," $3 "," $9 "/" $8}' | sort | uniq | column -t -s ","

model name      : Intel(R) Core(TM) i7-3667U CPU @ 2.00GHz
7.47 GB

ファイルシス   サイズ  使用  残り 使用% マウント位置
dev               10M     0   10M    0% /dev
run              3.8G  2.4M  3.8G    1% /run
/dev/sda1        234G  144G   79G   65% /
shm              3.8G  101M  3.7G    3% /dev/shm
tmpfs            3.8G   30M  3.8G    1% /tmp
tmpfs            765M   24K  765M    1% /run/user/1000

container  0     127.0.0.1:46445/TCP
cupsd      0     127.0.0.1:631/TCP
cupsd      0     [::1]:631/TCP
pulseaudi  1000  *:42787/TCP
pulseaudi  1000  *:45763/TCP
pulseaudi  1000  *:4713/TCP
sshd       0     *:22/TCP

dfの日本語出力のファイルシスで止まるのが気になり$LANGja_JP.UTF-8であるときcoreutilsdf.cを見ると
Image
ここじゃない・・・
どうやらpo/ja.poっぽいが、日本語版が今どこで管理しているんだろう。
Image
https://translationproject.org/domain/coreutils.html
上記で翻訳がされているようだが、dfが存在しない。
うーむ。

PO ファイルについて PO Files (GNU gettext utilities)

とても、ムズムズする。