Skip to content

Blog

tcpdump で指定した時間だけ、パケットキャプチャする

tcpdump で指定時間のみ、パケットをキャプチャしたい場合は以下のように実行します。 以下の例では 60 秒間パケットをキャプチャし、指定時間が経過したら自動的に終了します。

1
tcpdump -i ens2 -w capture.pcap -W1 -G60

オプションの意味は以下の通りです。

ショートオプション ロングオプション 意味
-i interface --interface interface パケットキャプチャするインターフェイスを指定する
-w file - キャプチャしたファイルを書き込むファイルを指定する
-W filecount' - キャプチャファイルのローテーション (切り替え) 回数を指定する
-G seconds - キャプチャする秒数を指定する

余談ですが、-W オプションを指定しなくてもキャプチャ自体は開始出来ました。 しかし、指定時間が経過してファイル書き込みを行う際に Permission denied エラーになってしまいます。 ファイル自体は保存されているようですが、エラーが気持ち悪いので個人的には毎回、-W-G オプションを併用しています。

1
2
3
# tcpdump -i ens3 -w sample.pcap -G 60
tcpdump: listening on ens3, link-type EN10MB (Ethernet), snapshot length 262144 bytes
tcpdump: sample.pcap: Permission denied

Python でデコレータを利用する

Python のデコレータ (decorator) は 公式ドキュメントの用語集 で以下のように定義されています。

Note

(デコレータ) 別の関数を返す関数で、通常、 @wrapper 構文で関数変換として適用されます。デコレータの一般的な利用例は、 classmethod() と staticmethod() です。

デコレータの文法はシンタックスシュガーです。次の2つの関数定義は意味的に同じものです:

def f(arg):
    ...
f = staticmethod(f)

@staticmethod
def f(arg):
    ...

同じ概念がクラスにも存在しますが、あまり使われません。デコレータについて詳しくは、 関数定義 および クラス定義 のドキュメントを参照してください。

つまり、デコレータの実態は「関数を受け取り、関数を返す関数」と言えます。 もう少し分かりやすく噛み砕くと「関数の処理内容を変更せず、関数に機能を追加出来る仕組み」とも言えます。

macOS にインストールした Cursor の設定を全て削除する

macOS へ Cursor をインストールするとホームフォルダ配下に設定ディレクトリ / 設定ファイルが作成されます。 ですが Cursor の設定は他にも保存されているようで、仮にホームフォルダ配下のファイルを削除し、再度インストーラを起動しても「前回のインストール時に指定したオプション」が記憶されてしまっており、インストールオプションを変更することが出来ません。

この事象は Cursor のコミュニティ記事である How to completely reset Cursor? でも言及されています。 この記事では「自己責任だが、下記を削除するように」とガイドしているようです。

  1. ~/.cursor
  2. ~/.cursor-tutor
  3. ~/Library/Application Support/Cursor

実際にこれらを削除した後でインストーラを再実行したところ、インストールオプションを指定しなおすことが出来ました。

macOS に Cursor をインストールし、Azure OpenAI Service を利用する

ここ最近、ChatGPT 連携機能を (プラグインでは無く) 本体に取り込んでいる Cursor の記事や動画をよく目にします。 ですが、いずれの情報も「OpenAI 社の ChatGPT 利用を前提」にしているものばかりに思えます。 そこで今回は macOS へ Cursor をインストールしつつ、Azure OpenAI Service を利用する為の設定手順をメモしておきます。