Linux

tcpdump でキャプったデータから TCP ストリームを取り出す

tcpdump で次のようにキャプって保存したファイルは wireshark で開いて解析できます。 tcpdump -nn -w a.cap port 80 wireshark なら tcpdump よりもいろいろな解析が可能なので、よくサーバでキャプったファイルから HTTP などの TCP ストリームを取り出す…

TCP backlog が溢れたときに何が起こるか

何となくふんわりとしか理解していなくて、実際のところ TCP backlog が溢れたときに Client~Server 間で何が起こるかよく判っていなかったので、実際に backlog が 1 で accept しない簡易な TCP サーバを作り、tcpdump でどのようなパケットが飛び交うか…

シンボリックリンクのアトミックな入れ替えの ln -sfn vs mv -Tf

WEB+DB Press vol.84 読んでて知った、シンボリックリンクのアトミックな入れ替え。 $ mkdir 1 $ touch 1/1.txt $ mkdir 2 $ touch 2/2.txt $ ln -s 1 cur $ strace ln -sfn 2 cur lstat("cur", {st_mode=S_IFLNK|0777, st_size=1, ...}) = 0 lstat("cur", {…

Windows と Linux (*nix) のコマンドライン引数の違い

元は下記で回答したものですけど。。。 https://teratail.com/questions/33915 Linux でプログラムを実行するとき、最終的に次の関数が実行されます。 execve(2) int execve(const char *filename, char *const argv[], char *const envp[]); つまり、次のも…

Linux で Windows のバイナリを作成

口内炎が痛くてやるきでないので、気晴らしにクロスコンパイルしてみました。 クロスコンパイル、名前は知っていましたがやったことありません。なんだか必殺技みたいでかっこいいです。 試した環境は CentOS 6.5 です。 まず mingw32-gcc というものが必要…

MySQL でクライアントが突然死したらロックが残ったままになった

珍しい現象に遭遇しました。冷静に考えると当たり前のことだし、MySQL に限ったことでは無いと思いますが。 MySQL のサーバとクライアントが別のホストになっているものとします(仮に DB サーバ と AP サーバ)。 192.0.2.1 => DB サーバ 192.0.2.2 => AP …

ファイルの更新を監視してコマンドを実行するワンライナー

phpunit を実行させるために Grunt を使いましたが・・・ PHP 開発でも Grunt を使う - ngの日記 まあファイルの更新を監視して phpunit(に限らず任意のコマンド)を実行するだけならワンライナーです。 $ inotifywait -e create,delete,modify,move -mr sr…

cifs でマウントした先の一部ディレクトリを mount --bind

Windows 上で PHP のコードを書いているプログラマの戯言ですが、非Windows、非PHP でも関係あるかもしれません RHEL 系ディストリだけでしか使えないかもしれません 私は普段 Windows 上でコーティングを行い、そのコードを仮想環境の Linux で動かしていま…