インフラの現場でよく使うLinuxコマンド10パターン(私的)
インフラ仕事をメインにしはじめてしばらく経ちましたが、その中でもよく使うなーと思ったコマンド(パターン)を10個選んでみました。(環境はUbuntu)
オプションの並べ方やコマンド自体の呼び方など人によって異なったりするので面白いですよね。
1. ポートが開いているか確認する(nc)
nc -vz <IP or hostname> <port> -w <second>
例: example.comの80番ポートが開いているか確認
nc -vz example.com 80 -w 1
wオプションをつけると指定した時間でタイムアウトしてくれます。
2. パケットを確認する(tcpdump)
tcpdump -An port <port> and host <IP or hostname>
例: 80番ポートかつexample.comとの通信をASCII文字でIPやポートの名前を変換せずに表示
tcpdump -An port 80 and host example.com
srcやdst、iオプションのデバイス指定もよく使うイメージです。
3. アクセス数の多いIPを確認する(awk + α)
cat <log> | awk '{print $1}' | sort | uniq -c | sort -rn | head
例: IPの数をカウントしソートして上位だけ表示(headのデフォルトは10行)
cat /var/log/apache2/access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head
awkの部分次第で色々な抽出ができますね。多いのは時間帯別アクセス数や、処理時間の平均などでしょうか。
4. 複数のサーバーにコマンドを投げる(ssh + seq)
for i in `seq -w 1 10`; do ssh <user>@<hostname>$i '<command>'; done
例: example01.com〜example10.comのホスト名を表示
for i in `seq -w 1 10`; do ssh user@example$i.com 'hostname'; done
01〜99のようなナンバリングをしている場合は、seqのwオプションで桁埋めしてくれます。
5. ドメインのDNS情報を確認する(dig)
dig any <domain>
例: example.comのすべてのDNS情報を表示
dig any example.com
「dig <domain> +short」の簡潔表示も便利です。
しかしexample.comのdig結果多いな…
6. ログインしているサーバーのグローバルIPを確認する(curl)
curl inet-ip.info
curlというより叩き先の機能ではありますがパッと見たいときに便利!
もちろんcurl自体もめちゃくちゃ使います。
7. バックアップをとりつつ置換(sed)
sed -i _`date "+%Y%m%d"` "s/<before>/<after>/g" <file>
例: test.txtの日付つきバックアップを取ってAAAをすべてBBBに置換
sed -i _`date "+%Y%m%d"` 's/AAA/BBB/g' test.txt
sedは環境によって微妙にオプションとか違いそうです。
perlだとこんな感じ?
perl -i_`date "+%Y%m%d"` -pe 's/AAA/BBB/g' test.txt
8. ファイルの更新順にリスト表示(ls)
ls -lrt <path>
例: /home下のファイルを更新順(降順)に表示
ls -lrt /home
細かい時間を見たいときは「–full-time」もあります。
サイズを確認するduコマンドと迷いましたが、lsは外せないですよね。
「L」と「S」がキーボードのちょうどいい位置にあるので、眠いときは無意味に実行してしまう人も多いとか多くないとか。
再帰的に「ls -lrtR /home」
サイズ順に「ls -lhSr /home」
などもたまに使います。
9. ログインユーザー確認(w)
w
笑ってるわけではないです笑
ログインしているユーザーと実行している処理、ついでにロードアベレージも見れます。
これでお互いちゃんと仕事してるか監視しあえるわけですね^^
10. コマンドの繰り返し実行(watch)
watch -n <second> <command>
例: wコマンドを10秒ごとに実行
watch -n 10 w
挙げてみたもののそんなに使わないですね…w
これで10秒ごとに気になるあの人が仕事してるかチェックできます。
以上、インフラの現場でよく使うLinuxコマンド10パターン(私的)でした。
find、less、more、tailあたりも入れたかったけど力尽きました。