破棄されたブログ

このブログは破棄されました。

*nix

logrotate(8) の create と su ディレクティブについて

TL;DR create ディレクティブで指定したユーザ・グループで空のログが生成されない時は、 su ディレクティブも指定する。 また、ログの出力方法に logger(1) と syslog を用いることを検討する。 原因 logrotate(8) の man ページでは、 su ディレクティブに…

GIF アニメを MP4 (h.264) に変換する

GIF アニメを MP4 に変換するには、 Libav/FFmpeg と ImageMagic を使う

Python で「実行中のプログラムの進捗度を手っ取り早く確認したい」

setproctitle というライブラリを使う。 sys.argv[0] に代入してもだめ。 あんまし手っ取り早くない。

.d ディレクトリにまつわる etc.

.d を接尾辞にしたディレクトリの標準があるのか調べていたところ、.d ディレクトリの歴史的経緯について説明した文章を見つけた。 結論から言うと、 .d 接頭辞自体は標準ではないようだ。分散パッケージングが普及するにつれ、設定ファイルの衝突を避ける必…

Bash のプロンプトでハァハァするスクリプト書いた。

Big Sky :: vimのステータスラインでハァハァするプラグイン書いた。 のパクリ. 3 年前のネタなので, 今更感がある.

setgid について確認

確認したいこと パーミッション 2775 のディレクトリがあるとする このディレクトリの所有グループに属さないユーザが、ディレクトリ内でディレクトリ作成等の操作ができるかどうか setgid ビットのたったディレクトリでディレクトリ作成した際、作成された…

Ubuntu 14.04 設定メモ

VirtualBox のデータが一式がすっ飛んだので、今まで使ってた Debian も使えなくなった。 Ubuntu 14.04 も出たし、ローカルの開発環境用には Ubuntu のほうが何かと楽そうなんで、 Ubuntu 14.04 Server をインストールした。 Scheme のインタプリタもインス…

/usr/local とは何なのか

ご用心: この記事を鵜呑みにせず、末尾に記載された一次ソースを確認してください。

名前付きパイプを用いたシェルスクリプトでの幅優先探索

幅優先探索をシェルスクリプトで実装するにあたり、キューを用意する必要があるわけですが、御存知の通り、while はサブシェルになるので、変数の受け渡しが糞めんどくさいですし、一時ファイルをディスク上に作成するのもなんか微妙な感じがします。 そこで…

rssh + chroot jail のハマりポイント

殴り書きのメモ。環境は Amazon Linux これから戦いが始まるから次に作業できるのが年明けなので、忘れないように。 rssh 側の chroot がうまく動かない。 OpenSSH 側で chroot して、chroot jail 内の rssh で制限をかける。 OpenSSH で Subsystem sftp int…

LPI Level 1 ででそうな、パッケージマネージャのオプションについてメモ

当たり前だけど、暗記はロングネームじゃないと辛い。 あと、dpkg も rpm も低水準のパッケージマネージャであって、APT とか yum とかと違ってレポジトリからパッケージを拾ってくるみたいなことはしないから、dpkg と APT、 rpm と yum を変に頭のなかで結…

Debian における Apache のバーチャルホストの優先度について

Apache Web サーバへ IP でアクセスした際、条件にマッチするバーチャルホストが複数あると、一番最初に読み込まれたバーチャルホストが呼び出される。また、Debian での Apache のバーチャルホスト設定ファイルは、ファイル名順に読み込まれる。なので、IP …

Debian における Apache のサイト設定方法について

概要 Apache 2 の設定ファイルの構成は、ディストリビューションによって差異があって色々とややっこしい。Debian での設定については /etc/apache2/apache2.conf に詳しく書いてある。とりあえず、モジュールとサイトの設定は *-available に追加して、ツー…

Debian が debian-multimedia.org レポジトリの使用中止を勧告

Debian によると、"debian-multimedia.org" は一度期限切れになっていたドメインで、現在の所有者について Debian としては把握していない状況とのことです。 つまり、レポジトリとして機能していながらも運営者が不明であるため、 Debian としてもはや安全…

Debian 7 の iptables と sshd の設定と IPv6 無効化メモ

iptables の設定 既存の設定を確認する。 sudo iptables -L たぶんこんなのが出る。 Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) tar…

(少なくとも Bash では)リダイレクト演算子の後の引数も取得できるっぽい

some_command opt1 >file opt2 こういう感じでリダイレクト演算子の後で指定された引数 (opt2) も取得することができる。 Bash って書いたのは、他のシェルで試してないから。 サンプルコード #!/bin/sh echo "$@" >&2 実行例 sh test.sh --before-redirecti…

awk ちゃんへ愛をこめて

awk ちゃんマジかわいい。 /etc/hosts からパターンにマッチするホストにだけまとめてコマンドを投げたいときとか、スッキリかける。awk ちゃん超かわいい。 # bad cat /etc/hosts | sed -e 's/[[:blank:]]\+/ /g' | cut -d' ' -f2 | grep 'PATTERN' 今まで …

MySQL の CLI クライアントでパイプを通した後も枠線を消さないようにする

MySQL の CLI クライアントの出力はパイプに渡すと枠線が消える。CSV とかに出力したいときは便利だけど、そのまま枠線も欲しい時がある。 mysql -uhoge -pfuga -hpiyo foo --execute "SELECT * FROM bar;" | some_command そういう時は、--table オプション…

Apache の VirtualHost とドメイン設定

別ポートでテスト運用をしようと思ったんだけど、Chrome for Android を含む Android のブラウザで 80 番ポート以外にアクセスできない事案が発生。*1 Android から確認できないと困るんで、Apache の VirtualHost で DocumentRoot をテスト側に向けて立ち上…

互いにポートの異なる2つのリモートホスト間で SCP コマンドを使う。

片方のサーバはポート 2222 だけど、もう片方は 2000 だよ、しかもセグメントが違うから SHH でログインしてからリモート経由で転送も上手くできないよって時でも SCP コマンドで転送する方法。 概略 .ssh/config にサーバのポート番号設定 -3 オプションを…

POSIX における終了コードについてとか

POSIX の exit のページを見ていたら、こんなのがあった。 If n is specified, but its value is not between 0 and 255 inclusively, the exit status is undefined. http://pubs.opengroup.org/onlinepubs/009695399/utilities/exit.html 「終了コード 0 …

ログアウト時に .mysql_history から更新系クエリを消す

ゲーッ!! うっかり MySQL history に残ってた DELETE クエリ投げちゃった!! ってならないために、.bash_logout で .mysql_history から更新系クエリをごっそり削除してやる。 ただ、ログは残したいから消す前に diff をとって増分を .mysql_history.bak …

dotfile を分離したりしなかったり。

~/dotfiles に配置した dotfiles のシンボリックリンクを一括で貼る。 find で直下の dotfiles だけ引っ張ってきて、 dotfiles のバージョン管理用の git 関係ファイルと ~/dotfiles 自身を弾いて シンボリックリンクを貼る find dotfiles/ -maxdepth 1 | gr…

PHP の md5() 関数と md5sum コマンドの返す結果違うわけ

PHP の md5() 関数が返す結果と、md5sum コマンドの返す結果が異なっていたので、また PHP のクソ仕様かと思ったら自分の頭がクソ仕様だった。 md5sum コマンドも md5() 関数も与えられた値を RFC 1321 にしたがって忠実に計算して返していました。ごめんな…

UTF-8 環境で Shift_JIS の文字列を grep する

grep $(echo 'ほげほげ' | nkf --oc=cp932) | nkf -w bash では動いたけどほかは知らん。あとでラッパーコマンド化しておこ。

無題

のどが痛い。 php からプロセスを実行する php からプロセスを実行する関数には popen() と exec() がある。 (いや、他にもいろいろあるけど割愛) で、違いがよくわからないから調べてみた。 Cygwin だからいろいろとアレ。 大雑把に言うと、同期か非同期…

find したファイル(たち)を Vim でまとめて開く方法

Vim7 のマニュアルからはなぜか消えてるけど、Vim7 でも使える。 3. Running Vim from xargs *xargs* The xargs program can be used to start a program with arguments that come from stdin. A typical example: find . -name "*.c" -print | xargs vim A…