Linux

GCPのdebianにsshするときにXの転送が失敗する場合の対処

GCPを使っているときにX転送して、画像をsxivで開いて確認したりしたくなることがある。 debianのインスタンスでsxivを実行しようとしたら、以下のようなエラーが出た。 @localhost $ ssh -Y gcphost @gcphost $ sxiv ... sxiv: Error opening X display よ…

abrtdを使用している時は `ulimit -c` は効かない

abrtdを使用している時は ulimit -c は効かない 背景 Postfixの認証を担っているsaslauthdがクラッシュしてコアを吐いたのだが、設定が悪く保存されなかった。 再発した時にちゃんとコアが保存されるように設定する過程でネットで調べた情報が一部自分の環境…

曖昧にならない後方参照の記述方法

pythonで正規表現を使って置換処理をするときに、後方参照で少し困ったことが起きた。 一般的に使われる「\1」のような後方参照の直後に数字を続けると当然だけど後方参照の数字がどこまでなのかわからなくなる、というものだ。 解決方法は簡単で「\1」では…

pdnsを適当にチューニング

pdnsのチューニングは以下のページが参考になる。 https://doc.powerdns.com/md/authoritative/performance/細かくやればきりがないと思うけど、receiver-threadsが一番効果がでそうなので、そこからやってみる。チューニングのきっかけとしては、バックエン…

pythonのsftpserverを試す

pythonで書いているバッチのテスト用にsftpサーバを簡単に立ち上げたかった。 探してみるとちょうどよいsftpseverというものを見つけたので使い方を含めてメモ。 GitHub - rspivak/sftpserver: A simple single-threaded SFTP server gist.github.com

ニフティクラウドのロードバランサをAnsibleから操作できるようにしてみた

AWSならbotoと連携するモジュールをAnsibleが正式に提供しているが、 ニフティクラウドのSDKがそもそもPythonに対応していないので、Ansible対応は難しい。ということでAnsibleに対応するために2点実装した。 (1)botoをニフティクラウド用に修正 (2)An…

implementation of smtpd always returning 500 error.

常に500エラーを返すSMTPサーバを実装した。テスト等に使えるはず。 gist.github.com工夫ポイント: エラーコードの返し方がsmtpdのドキュメントにはなかったので、ソースから特定した。

Postfixがきりの良い時間にアクセスすると遅い

Postfixがきりの良い時間にアクセスすると遅い 背景 ユーザから「cronがキックするスクリプトがメールを送るとPostfixからの応答が遅くタイムアウトが起きている」と報告された。 結論 nslcdのレスポンスが遅いことが原因だった。 きりの良い時間はLDAPのア…

IPの偽装

検証目的で接続元のIPを偽装したい場合にループバックデバイスのIPアドレスを変更するという方法がある。 参照:http://thesimplesynthesis.com/post/how-to-spoof-your-ip-address-to-test-geolocation $ sudo ifconfig lo 218.xxx.xxx.xxx $ telnet 218.xx…

systemdについてちょっと調べた

参考文献を並べて重要な箇所だけ引用する。 参考になった順にならべる。 なぜsystemdなのか? (翻訳 Why systemd(2014-07-23)by Jorgen Schäfer) http://postd.cc/why-systemd/ SysV initサービスを起動したり停止したりするのに用いられる一般的な方法は”…

続buildrootによるinitramfsのビルド(2)

gccがデフォルトではインストールされていなかったので、gccを追加するオプションを探したところ、 なぜか見つからないググったところ、 "development files in target filesystem"のような項目があるので'y'としておくとgccを追加するオプションが現れるよ…

続buildrootによるinitramfsのビルド

udevを使うとカーネルパニックが発生する問題を解決 udevを使うとカーネルパニックが発生する現象に遭遇したので 使用するbuildrootのバージョンを上げた.ステーブルなバージョン(2011.11,2011.08)だとうまく行かないので,スナップショットを持ってきてビ…

buildrootインストール

buildrootのインストール buildrootは組み込み用途のLinuxを簡単にビルドするためのツール 今回はこのツールを使って高機能なinitramfsを作る 説明 initramfsはディスクをルートにマウントする前の一時的なファイルシステムだと思うけど, initramfsに必要な…

initrd/initramfs

initramfsの中身を調べる 方法としては initramfsを解凍する方法もあるが,改変することを考えるとソースとなるディレクトリを知る必要がある 使用したディストリビューションはArch Linux. ソースディレクトリの特定 カーネルビルドにおいてmake installを…

getrusage

Linux kernel 2.6.38.7で時間を計測する必要があり、多少調べたソースはMANPAGE http://linuxjm.sourceforge.jp/html/LDP_man-pages/man7/time.7.htmlgetrusageを使うとtickよりも高い精度で時間測定ができるらしいので使ってみた 結果は以下のようになった …

.configファイルの生成方法

Linuxカーネルを構築する上で最も苦労するのは.configを生成するところじゃないだろうか? make oldconfigでインストール時の.configを使い回すのは楽ちんだが、大量の不要なドライバが入っていてコンパイルに時間がかかる 手動で.configをつくる場合、デバ…

Kernelの初期化について

x86_64のカーネル初期化ルーチンを追ってみた マルチコアは最初に起動するコアをBSPと呼び、それ以外をAPと呼ぶ BSPはBIOSとブートローダを経て、カーネルの入り口であるstartup_64にたどり着き、 その後INITプロセスを実行するまでハードウェアの初期化を中…

/proc/interrupts

Linuxにおける割り込み処理について調べている /proc/interruptを表示していみて気づいたことを書いてみる CPU0 CPU1 0: 51 13 IO-APIC-edge timer 1: 1671 1363 IO-APIC-edge i8042 8: 1 0 IO-APIC-edge rtc0 9: 0 0 IO-APIC-fasteoi acpi 12: 3 1 IO-APIC-…

kexecのpurgatory

kexecはメモリ上にカーネル一式(カーネル本体、コマンドライン引数、initrdなど)を展開する また同時に特別な領域としてpurgatoryというものを展開するpurgatoryはカーネルに入る前の代替初期化ルーチンらしい cold bootの場合、CPUのモードの初期化などが…

kexec、kdump[2]

kexecの各セグメント(bzImageとか)の展開先の指定方法について調べている。 (1)kexec-toolsのオプションであるmem-minとmem-maxで指定可能だとか あと(2)カーネルオプションのcrashkernel=ss@nnでも可能である (1)(2)の方法で試しにやってみる 前提としてK…

kexec、kdump

kexec/kdumpについて調べている。 Kexecはウォームブートといって電源を落とさずに再起動するツール。Linuxカーネルのメインラインに入っている。 Kdumpはカーネルクラッシュの際にkexecで新しいカーネルを起動して、ダンプ内容からデバッグを行うツール。Ke…