タグ

unixに関するtztのブックマーク (27)

  • 突然のTwitter砲にもなんとか耐えたさくらVPSに感謝する - As a Futurist...

    なんか、2/6 の夜に「修士論文の代わりに退学願を提出してきた」が Twitter でばずったらしく、Yahoo 砲よろしく突如としてアクセスが集中しました。下の方にリソースモニタリングのグラフを貼りつけてますが、今までがほぼ 0 に見えてしまうくらいに来てたのでびっくりでした。 まぁ色々コメントつけて頂いたりしてますが、もう2 年も前なんでこのエントリについて今更僕から突っ込むことは無くて、あのエントリはあのエントリとして見て頂ければと思います。ここでは今回そんな突然のアクセス集中にも見事耐えてくれたさくら VPS に感謝しつつ、アクセス集中の状況を鯖管的立場から分析してみましょう。 ちなみに、以前エントリに書いていますがサーバの構成としてはさくら VPS1 台で、CentOS+Apache+mod_fastcgi+PHP-FPM+MySQL5.5(InnoDB)で WordPress

    突然のTwitter砲にもなんとか耐えたさくらVPSに感謝する - As a Futurist...
    tzt
    tzt 2011/02/07
  • 中規模データ処理で学んだ tips - フリーフォーム フリークアウト

    移転しました http://please-sleep.cou929.nu/20101230.html

    中規模データ処理で学んだ tips - フリーフォーム フリークアウト
  • 詳解UNIXプログラミング - いやなブログ

    詳解UNIXプログラミング いつか全部読もうと思いつつ、長らくつまみ読みしかしていなかった『詳解UNIXプログラミング』を、ようやく思い立って最初から最後まで読みました。 こののすごいところは、ほとんどすべてのページに、Unix のシステムプログラミングを行う上で重要なことが書かれていることです。書を通読しながら、「こんなこともできたのか」「こんな落とし穴があったのか」「こういう仕組みだったのか」といった発見が数え切れないほどありました。 買った当初は、とりあえず持っておいて必要なときにリファレンス的に使えばいいや、と考えていたのですが、リファレンスというものは「何ができるか」をある程度知っていないと有効に活用できません。そういった意味でも通読して、Unix のシステムコールでどんなことができるのかを一通り知ったのは大きな収穫でした。 書では全編を通じて、システムプログラミングにあり

  • 非同期シグナルとanti-pattern - memologue

    sigsafeというUNIX向けの小さなライブラリがあります。これは、「シグナルを正確に取り扱うのは非常に難しい、俺たちのライブラリを使うと随分楽になるよ」といった趣旨の、アセンブラとCで書かれたライブラリで、それなりの種類のOS、CPUがサポートされています。 このライブラリ自体の使い方、使い勝手、あるいはどう実装されているかについてはまだ把握しきれていないのですが、ドキュメントに有用な部分があるのでご紹介します。 http://www.slamb.org/projects/sigsafe/api/patternref.html です。非同期シグナルを使用したコーディングを行う際の、一種のアンチパターン集になっています。 悪い例1: signal safe ではない関数をシグナルハンドラから呼んでしまう void unsafe_sighandler_a(int signum) { pri

    非同期シグナルとanti-pattern - memologue
  • UNIXの落とし穴

    UNIXを使っていて気づいた細かい不満を挙げます。他の人の意見も 混ざっています。もっと UNIX が嫌いになりたい人は Unix Hater's Handbook をどうぞ。UNIXをなんとかしたい人は Let's Make Unix Not Suck をどうぞ。 目次 設定ファイル地獄 変な文法 流儀の違い 貧乏くささ プログラミング 初心者の敵 X Window System その他 設定ファイル地獄 山のような設定ファイル ソフトウェアごとに異なる流儀を覚えるのむちゃくちゃ面倒。 まさに、しょうもない 雑多なノウハウ の山。 procmail の設定ファイル 変態的。 :0 ってなんだ? BIND の設定ファイル ドメイン名を書くレコードの最後に . をつけ忘れる。 シェルごとの .*rc .*profile .*login などの挙動の違い わけわからん。 /etc/sh

    tzt
    tzt 2010/02/02
  • The Open Group Base Specifications Issue 6

    <body> <h2>Frame Alert</h2> <p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.<br> Link to<a href="mindex.html">Non-frame version.</a></p> </body>

    tzt
    tzt 2009/11/22
  • bashのキー操作一覧まとめ - 元RX-7乗りの適当な日々

    bashでは、"Ctrl"や"Esc"キーと組み合わせることで様々な操作ができるので、メモ代わりにまとめておきます。 よくやるのが「Ctrl + s」キーを押してしまうと、フリーズしたかのように見えるので一瞬焦ってしまう。そんな時は・・・ Ctrl + b カーソルを左へ1文字移動 (←キーでもOK) Ctrl + f カーソルを右へ1文字移動 (→キーでもOK) Esc + b カーソルを右へ1単語移動 Esc + f カーソルを右へ1単語移動 Ctrl + p historyの1つ前に入力したコマンドを表示 (↑キーでもOK) Ctrl + n historyの1つ後に入力したコマンドを表示 (↓キーでもOK) Ctrl + h カーソルの左1文字を削除 (BackspaceキーでもOK) Ctrl + d カーソルの右1文字を削除 (DeleteキーでもOK) Ctrl + a カー

    bashのキー操作一覧まとめ - 元RX-7乗りの適当な日々
  • 時代はGNU screenからtmuxへ - このブログはURLが変更になりました

    GNU screenはもう古いので皆さんtmuxへ移行しましょう、という話。Gentooならemerge tmux。 スクリーンショット 手元のtmuxを撮ってみた。縦分割モード。ウィンドウマネージャはawesome。左のircクライアントはweechat。 家にもいくつかスクリーンショットがある。 tmuxへ移行する理由(メリット) 標準設定のままでもそれなりに使えるステータスバー 各ショートカットがコマンドベース(コマンドで操作ができる) 標準で縦分割機能搭載 GNU screenがたまに固まる問題(が発生するのは私だけ?)が発生しないかも ビュー専用のスクロールモード 柔軟なペイン制御 コピー&ペースト用のバッファを複数保持できる terminfo的にscreen互換 メモリ消費量が少ない(GNU screenの約1/5) 一部機能でマウスが使用できる(mode-mouse, mo

    時代はGNU screenからtmuxへ - このブログはURLが変更になりました
    tzt
    tzt 2009/07/10
  • 第1回 zshで広がる世界 | gihyo.jp

    zshはシェルである。シェルはもちろんキーボード入力されたコマンド行を解釈し、必要なコマンドを必要な引数とともに起動することを主な仕事とするソフトウェアである。単なるシェルなのだが、zshには他を圧到する比類なき機能がある。その一端を印象づける一つの例に、zshで実装されたテトリスがある(図1⁠)⁠。 もちろんこれは、お遊び機能の例で実際の日常作業をこれで進めるわけではないが、潜在的に備えている機能がどれほどのものかが分かる好例である。 zshは、sh(Bourne Shell)をベースとし、ksh、csh(tcsh⁠)⁠、bashの優れた機能をアイデアとして取り込み、なおかつ作業効率を高める独自の機能を登載したまさに至高のシェルである。しかしながら超高機能・多機能であるがゆえに全容を掴むのが難しい。付属の英文マニュアルはしっかりしているものの、簡潔な仕様記述がされているのみなので具体的な

    第1回 zshで広がる世界 | gihyo.jp
    tzt
    tzt 2009/07/04
  • memologue - シグナルハンドラを使わないでシグナルをハンドルする

    「シグナルハンドラの中でできることは非常に限られているんですよ」というお話を1年半くらい前に書きましたが、この話には続きがあって、ある特定の条件下ではこの制限を緩和することができます。今回はその方法についての解説です。sigwait(3)という関数を使います。 ※ この話、うっかり書き忘れていました。ちょっとしたきっかけで思い出したので、暇があるうちに書いておきます。 ■「シグナルを待つ」処理 〜従来の方法〜 皆様、「シグナルの到着を待つ」処理を、次のように書いてしまっていないでしょうか? // シグナルハンドラ void handler(int signo) { // この中で使って良いのは非同期シグナルセーフ(async-signal-safe)な関数のみ }を用意して、 sa.sa_handler = handler; sigaction(SIGHUP, &sa, NULL); ..

    memologue - シグナルハンドラを使わないでシグナルをハンドルする
  • HugeDomains.com

    Captcha security check digape.com is for sale Please prove you're not a robot View Price Processing

    HugeDomains.com
  • 続・$HOME/.ssh/configを活用していますか? — ディノオープンラボラトリ

    以前の記事「$HOME/.ssh/configを活用していますか?」では、設定ファイルを少し頑張って書けば普段のSSHライフが随分変わりますよ、と紹介しました。今日はその続編です。前回よりマニアックな設定を紹介します。 2段以上先のサーバにログインする Dynamic Forward機能を使う 共通設定をまとめて書く 2段以上先のサーバにログインする 目的のサーバにログインするために、踏み台的なサーバを経由しないと入れない環境があります。例えば、dmz経由でないとDBサーバにログインできない環境、というのは良くある構成でしょう。 このような場合に、ProxyCommandパラメータが利用できます。 上の設定で「ssh db1」とすると、sshでdmzに接続し、dmzから192.168.0.201へログインします。これを利用するには踏み台サーバにncコマンドが必要ですが、大抵の環境にインスト

    tzt
    tzt 2009/05/29
  • getoptによるオプション解析

    はじめに プログラムにパラメータを直接埋め込むような, 非効率的なプログラミングは止めましょう. #defineで記述するのもいいですが,頻繁にパラメータ調整をする時には, いちいち再コンパイルが必要です. こういう時にはコマンドラインの引数で,オプション指定するのが一番です. もちろん,非常に多くのパラメータ指定が必要な場合は, パラメータ設定ファイルに記述した方がいいですが, それでもオプション指定はできたほうがいいでしょう. このオプション解析を自分でやろうとすると,面倒なだけでなく, 統一性のないヘンテコリンなコマンドになりがちです (オプションの記述順を変えたらダメとか...). オプション解析は,getoptを使ってスマートに書きましょう. 詳しくは man 3 getopt を見て下さい. ついでに man atoi, man atof あたりも見ておくといいでしょう. 具体

    tzt
    tzt 2009/05/25
    getopt()でマイナスの引数を使う裏技(?)
  • 404 Blog Not Found:findを極めたかったら、statを押さえよ

    2009年05月13日13:30 カテゴリiTech findを極めたかったら、statを押さえよ find(1)ねたというのは、定期的にblogosphereを賑わせるものだし、それはそれでよいし、私自身いくつか書いているのだけど.... findを極める! - IDEA*IDEA 〜 百式管理人のライフハックブログ 〜 タグ「find」を含む新着エントリー - はてなブックマーク 404 Blog Not Found:perl - the best friend of find(1) 404 Blog Not Found:勝手に添削 - find(1) さすがに何年もblogosphereにいると、いいかげん見飽きてくる。ましてや「極めたい」ともなると、findばっか見ていても絶対無理なのだし。 というわけで、findとは何かを改めて説明したあと、その背後にあるstatを抑えてみること

    404 Blog Not Found:findを極めたかったら、statを押さえよ
  • 【特集】マイクロソフトSFU vs Cygwin - Windows上のUNIX互換環境を徹底比較 | エンタープライズ | マイコミジャーナル

    【特集】 マイクロソフトSFU vs Cygwin - Windows上のUNIX互換環境を徹底比較 2004/02/28 海上忍

  • 春なのでemacsからvimに乗り換えてみました - ふぃふmemo

    春です。 何か新しいことがしたくなるこの季節。 ついにemacsからvimに乗り換えてみました。 というわけで、ここ一週間ほどゲームtwitterもろくにせず、ひたすら.vimrcをカスタマイズしまくっていました。 正しくはカスタマイズすべくググりまくっていたんですけど‥‥。 その甲斐あってかなり結構満足するものが出来たので、思い切って晒してみます。 まず最初に私がインストールしたvimですが、いくつか試して最終的に以下のCocoa版に落ち着きました。 PrivatePortfile/Vim72 - MacPortsWiki-JP 最初はMacVimなどを使っていたのですが、他のはiminsert=0が使えませんでした。 それでは、.vimrcをぺたりんこ。 PLAIN TEXT TEXT: "--------------------------------------------

  • UNIXの規格について - memologue

    いままで漠然と、「UNIXの規格について調べるときにはSUSv3を見る」ことにしていましたが、それでOKなのかちょっと調べてみました。 結論としては、ここ 今や ISO/IEC 9945:2002 IEEE Std 1003.1-2001 (POSIX) Single UNIX Specification Version 3 (SUSv3) の3つは,全く同じものですから、SUSだけ見れば十分だと思います。 の記述通りのようですね。 以下は、The Single UNIX Specification Version 3 - Overviewに書いてあることの要約です。 自分なりのまとめ 昔、似たような標準を作っている団体として、OpenGroup, ISO/IEC, IEEE があった。で、 ISO/IEC 9945-1(POSIX.1), ISO/IEC 9945-2(POSIX.2)

    UNIXの規格について - memologue
    tzt
    tzt 2009/04/03
  • UNIXの部屋

    UNIX/Linuxの部屋 FreeBSD・Solaris・Red Hat Linux・Fedora・CentOS・HP-UX を使った上で気づいたこと・調べたことをまとめました。 この web 内についての引用・リンク・紹介などの注意点は サイトへのリンクについて をお読み下さい。

  • PC覚え書き | プログラムのデーモン化

    VvZX(qvZX)Afork()VXeR[gpBVXeR[oAovZXmAvZXRs[B ovZXevZXARs[VvZXqvZXBevZXAqvZXfork()lpB evZXAfork()qvZXvZXIDpAqvZX0pBplAevZXqvZXッBlBAqvZXPvOヲB int main(void){ pid_t child // fork()li[ if( !(child=fork()) ){ // child=0qvZX printf("inchildprocess\n"); exit(0); } // evZXqvZXID\ヲ prinft("inparentprocess:childprocessID=%d\n,child); return 0; }

  • ファイル記述子をUnixドメインソケット経由で渡す - bkブログ

    ファイル記述子をUnixドメインソケット経由で渡す Unix 系の多くの OSには、ファイル記述子を別のプロセスに Unix ドメインソケット経由で渡す機能があります。一見、何のために使うのかよくわからない機能ですが、 glibc の nscd はこれをうまく使っています。 nscd (name service caching daemon) は glibc 内で行われる名前関連の問い合わせをキャッシュするサーバです。NIS や LDAP などを用いてネットワークベースでユーザ管理を行っている場合、 getpwuid() などの関数はユーザ名の取得にネットワークアクセスを必要としますが、 nscd を立ち上げておけば、二度目からの同じ問い合わせはキャッシュから得られます。 nscd を立ち上げている GNU/Linux システムでは、キャッシュファイルが /var/db/nscd 以下に作