= lsof = * Unix系で広く使えるサードパーティコマンド。 * 便利すぎるのと、マニュアルが複雑すぎて意味不明なので、あまり効果がわかってない。 * なのでイディオムをいくつか覚えてけばよい。 * どうせ全ては使いこなせない(爆)。 <> == 削除したにも関わらずディスク領域が開放されないときに調査する == {{{ lsof | fgrep deleted }}} == インターネットサービスを調査する == {{{ lsof -nPi }}} * 「-n -P」(-nP) オプションはそれぞれ以下を意味する。 * -n はIPアドレスの逆引きをしない。 * -P はポート番号をポート名に変換しない。 * この場合の肝は「-i」オプション。引数を要求するので、他にオプションを加えたいときは分けること。 * これは例えば「-inP」のような指定はできない。「-nPi」か「-Pni」としておくのが安全。 * 「-i引数」(または -i 引数)の場合、以下の指定ができる。 * 「4」「6」→IPv4またはIPv6でサービスしているもの。両方とも指定が無いときはIPv4/IPv6問わず。 * 「tcp」「udp」→TCPまたはUDPでサービスしているもの(IPv4/IPv6問わず)。両方とも指定が無いときはTCP/UDP問わず。 * 「@ホスト名」「@ホストアドレス」→@の指定は必須。指定したIPアドレスでサービスしているもの。指定が無いときは全てのアドレスが対象となる。 * 「:ポート名」「:ポート番号」→:の指定は必須。サービス名(ポート名)でサービスしているもの。指定が無いときは全てのサービスが対象となる。 === SSHサービスの検索 === {{{ lsof -nPi:ssh }}} === ローカルサービスの検索 === {{{ lsof -nPi@localhost }}} === TCPサービスの検索 === {{{ lsof -nPitcp }}} === 置き換え === バッチ処理等での指定はともかく、調査等で人間の目で見て判断するなら、以下のコマンドを * sockstat(1):全部置き換え可能。 * netstat(1):-finet / -finet6 オプション辺りは置き換え可能。 * ss(1):悪名高い(?)net-tools のコマンド。これ覚える前に lsof に慣れたので、自分は使ったことがない。 = 参考文献 = * [[https://qiita.com/hypermkt/items/905139168b0bc5c28ef2|lsofコマンド入門]] * [[https://qiita.com/yusabana/items/fd03ee4c90a0d1e0a8c6|開いているファイルのプロセスを特定(lsofコマンド)]] * [[https://mag.osdn.jp/06/11/23/0451251|削除したファイルをlsofで復元する]]