When we look at our pastime in the last few years, whether we’re diving into
When we look at our pastime in the last few years, whether we’re diving into
「Linuxネットワークプログラミング」という本を書きました。 LinuxでCを利用してネットワークプログラミングを行うための解説書で、私にとって初の書籍執筆です。 昨年2月にソフトバンククリエイティブさんから書籍執筆のオファーを頂き、開始から約一年後の発売となります。 今回、C言語によるLinuxのネットワークプログラミング解説書籍を執筆する機会を頂けたのですが、書籍の大きな方向性として以下の点が挙げられます。 可能な限り、ソースコード全文を掲載する。断片的なソースコードだと手元で即座に試しにくい メインはIPv4を意識しながら書く ただし、getaddrinfo()を前提とし、IPv6が存在することを前提に書く IPv6移行がメインの書籍ではない。インターネットの世界がIPv4/IPv6デュアルスタックで運用されることになるという前提でネットワークプログラミング解説書を書いているだけ
はじめに 今回は、iptablesのnatテーブル(関連記事)を使ったNATおよびNAPT機能を解説します。こうした機能を使えばパケットのIPアドレス情報を書き換えることができます。つまりiptablesを駆使すれば、市販されているブロードバンドルータと同等、またはそれ以上のルータを作り上げることができるのです。 関連リンク →Linuxで作るファイアウォール[パケットフィルタリング設定編] http://www.atmarkit.co.jp/flinux/rensai/security05/security05a.html →連載記事 「習うより慣れろ! iptablesテンプレート集」 http://www.atmarkit.co.jp/flinux/index/indexfiles/iptablesindex.html →連載記事 「習うより慣れろ! iptablesテンプレート集
追記2009/10/16: いくつか指摘を受けましたが、linuxでっていうかzshに結構依存してしまっています。 つい自分環境についてばっかり考える悪い感じw 書こうと思った発端。 "disownコマンド - Do You PHP はてな" ことコマンドラインのTIPSに関しては、予想外な人が予想外な事を知らないものだ!と驚く事があります。 disownを知らなかったってことは、このへんももしかしたら知られてないかも?というバックグラウンド処理に関する豆知識(+おまけ)をいくつか。 知ってたらごめんなさいだけど、こういうのが需要あるってわかったら口に出して言ってみておくのは大事だよね! 1. しょっぱなからdisownした状態でバックグラウンド処理にする「&|」 いちいちバックグラウンド処理にした後にdisownするって2度手間が嫌な人に。 disownについては上記の記事参照。 % p
安くて手軽に使えるVPSサーバないかなーと探していたら、見つけましたよ。お名前.comのVPSサーバです。 初期費用は5250円かかりますが、月額2940円でグローバルIPアドレスもらえてroot権限つきなら悪くないですね。 ざっくりとしたスペックは下記の通り。この価格ではなかなかのスペックだと思います。 OS CentOS 5.3 仮想化ソフトウェア Virtuozzo ディスク容量 50GB メモリ(最大) 1GB 詳細は下記から。 VPS|ドメイン取るならお名前.com というわけでさっそく申し込みました。しかしながら、yumが使えない状態になっているのでいろいろとセットアップしました。 ちょこっとそのセットアップ手順をメモがてら載せておきたいと思います。 ファイアーウォールの設定 標準では、sshで使用される22番ポートは閉じられています。まずはセキュリティの設定からポートを解放し
ここのところ、お仕事で管理しているシステムで、夜中に負荷が急上昇する事象が発生しており、夜な夜な対応に追われていました。 (このブログ書いている今も、負荷がじわじわ上昇中なんですが・・・) で、いろいろと調査した結果、ようやく糸口がわかってきました。 結論から言うと、ローカルポートなどのネットワーク資源を食いつぶしていたようです。 以下、調べていってわかったことなどのメモです。 トラブルの事象 運用しているのは Apache2.2 + mod_perl2 なwebサーバで、リスティング広告システムの配信系です。 リスティング広告の配信のシステムって一般的にロジックが複雑でいやーな感じなんですが、このシステムもご他聞に漏れずかなりのひねくれ者で、しかもトラヒックは結構多めです。システム全体で、日に1000万〜2000万クエリくらいかな。幸か不幸か、このご時勢においてもトラヒック的には成長し続
lsyncdというツールをご存じでしょうか?これを導入することで、リモートのホストとディレクトリ単位で同期をすることができます。 先日のエントリーでも紹介していますが、実は設定や導入がすごく簡単です。した設定でリモート間でファイルの同期をとれるのはやはり便利ですよね。 さて、今回はlsyncdの簡単な導入方法を紹介したいと思います。 lsyncdの仕組み lsyncdはlinux kernel2.6.13で導入された、inotifyというAPIをつかって動作しています。 inotifyはファイルシステムのイベントを取得することができるAPIで、ファイルの作成や削除などをそれぞれイベントとして取得をすることができます。 この仕組みと、rsyncを組み合わせてファイルの同期を行うことを実現しています。 lsyncdのインストール まず、以下のページからsourceをダウンロードしてください。
メモエントリ tar単体で差分取れるとは知らなかった。 Manpage of TAR より。 -N, –after-date DATE, –newer DATE DATEより新しいファイルだけを格納する へぇ、使いどころ次第で地味に便利かも。 日時の書式はこんな感じ、"2008-04-07 00:00:00" 日付だけでもOK。 date でいうと 'date "+%F %T"' での出力になるかな。
BOOK: WEB+DB Press TITLE: 常駐型サーバーのデバッグ手法(ドラフト版) AUTHOR: (株)プリファードインフラストラクチャー 太田一樹 *注: この文章はWEB+DB PRESS Vol.48に掲載された記事のドラフト版です はじめに 今回はデバッグ関連特集ということで、常駐型サーバープログラムを作成する際のハマりどころやそれに対する解析方法・解析ツール・対策を、実際の経験を交えながら紹介したいと思います。 筆者は(株)プリファードインフラストラクチャーでインメモリ分散検索エンジン「Sedue (セデュー)」を開発しています。モバイル向け検索エンジン「エフルート」や、2008/11/6にリニューアルされました「はてなブックマーク2」などの検索バックエンドとして使われております。 この検索エンジンはいくつかの常駐型サーバープログラムから構成されており
Desktop CD をUSBメモリにインストールする方法 単純にDesktop CDとして動作させるのではなく、変更内容をUSBメモリの別パーティションに保持するようにセットアップする方法です。 これにより、電源を切っても作成したファイルやインストールしたアプケーションが消えなくなります。 必要なもの 高速起動版のDesktopCDイメージ CD-Rなどのメディア USBメモリ USBメモリからの起動に対応したPC ダウンロードしたCDイメージをそのまま使うなら1GBytes以上のものが必要。 自分でDesktop CDをカスタマイズして容量を減らせば、512MBytes以下のものにインストールすることもできる。 Desktop CDのイメージをCD-Rなどに焼く。 そのCDでPCを起動する。 内容を消しても構わないUSBメモリをPCに差し込む。 自動的にマウントされた場合、アンマウント
大事なファイルを削除したいときやディスクを廃棄・譲渡する時などは、データを完全に消去したいものです。 正直、プロではないので、データ復旧の詳細は詳しくありませんが、rmコマンドでデータを消去してもddコマンド等でデバイスを吸い出して、細かく解析していけば(あまり断片化されていなければ)データは復旧できるかもしれません。 そんなときは、"shred"コマンドが使えるようです。 "shred"を使うと、データの内容を特別なパターンで繰り返し上書きを行い、論理的に破壊することが可能です。 "shred"はGNUのcoreutilsに含まれているコマンドで、おそらくLinuxであれば何もインストールせずとも使えるコマンドかと思います。 尚、"shred"を利用してのディスク廃棄などは、自己責任でお願いします。 さて、"shred"の使い方は、、、 $ shred -u hoge.txtな感じで、-
ファイルの入出力性能の改善は,システム全体の処理速度向上に大きく貢献する。高速なプロセッサを搭載する現在のコンピュータでは,ファイルのアクセス速度がシステム・パフォーマンスのボトルネックになっているためである。不要なディスク・アクセスの削減とアクセス速度そのものの向上が,チューニングの要となる。 アクセス時刻の記録を省略しファイル読み込みを高速化 ファイルにアクセスしたときには,最終アクセス時刻が属性情報として記録される。この情報を記録しないように設定することで,ファイルの読み込み速度を向上できる。最終アクセス時刻の記録を止めるには,ファイル・システムのマウント時に,noatimeオプションを指定する。ベンチマークでは,読み込み速度が2倍強に改善できた。 atimeは無駄 LinuxなどのUNIX系OSでは,statやfstat,lstatというシステム・コールを使って,ファイルの属性情報
今朝起きて、メールチェックしようとしたらサーバに接続に失敗する。サーバのエラーログを確認したら以下の通り。 Time just moved backwards by 116 seconds. This might cause a lot of problems, so I’ll just kill myself now. http://wiki.dovecot.org/TimeMovedBackwards (時間が116秒戻った。ヤバいからオレは死ぬぜ。dovecot) dovecotが死に際に残してくれたURLにアクセスすると、 大変な事になるから時間を戻してはいけないよ。もしかしてntpdateなんて使ってるんじゃあるまいね。ntpd使えよな。 なんて書いてある。図星だ。 ウチのサーバはntpdを動かさず、cronで明け方にntpdateで時刻調整を行っている(ntpサーバにするつもり
Ubuntu の Desktop 版インストーラではデフォルトで LVM を使ってインストールすることができません。 Alternate 版を使えば LVM を使ってインストールできるんですが,テキストモードでインストールするのは嫌だとか,日本語ローカライズド版でインストールしたい,ということであれば下記の手順でやることになります。 Live CD として立ち上げる Live CD 環境に lvm2 をインストールする Live CD 環境で LVM を切る Live CD 環境で LVM 上にファイルシステムを作成する Live CD 環境からインストーラを立ち上げてインストールする インストールされた環境に chroot して lvm2 をインストールする 結果的に http://www.debuntu.org/how-to-install-ubuntu-over-lvm-filesy
LinuxはWindowsよりセキュア――そう考えてLinuxへ移行する方、Linuxは決して完璧ではない。先人たちがどのようなセキュリティ対策を講じているのかを紹介しよう。 人々がWindowsからLinuxに移行する主な理由の1つに、インターネット上のマルウェアに対してよりセキュアだと期待できるからということがある。Windowsデスクトップを安全に保つためには別途セキュリティ対策を強化する必要があることは誰でも知っているところだが、同じことをLinuxで実現するためには何をする必要があるのだろうか? この問いに対する答えを見つけるために、有名なLinuxカーネルハッカーとセキュリティの専門家におのおのの意見を聞いてみた。 非凡なLinuxハッカーであり、IBM社員であり、最近の役割としてはLinux Foundationでプラットフォーム戦略のリーダーを務めるTed Ts'o氏は、も
d:id:hirose31:20070528:1180326347 のobserve-mtimeは、ファイルのmtimeの変更を定期的に確認してイベントを発火させてたんですが、それをLinuxのinotifyで置き換えてみました。 mtime監視だと調べてスリープしての繰り返しなので、変更してからイベントが起こせるまでちょっとタイムラグがあったんですが、inotifyを使うとファイルが変更された瞬間にぴこっとイベント発火できるのでこっちのほうがいいかも。 http://www.linux.or.jp/JM/html/LDP_man-pages/man7/inotify.7.html rsync + inotify = lsyncd | スラド デベロッパー Linux::Inotify2 CPANにはLinux::Inotifyというのもあったのですが、$Config{archname}が
Tera Term 等の端末を複数同時に立ち上げて作業したり、screenにて複数の仮想端末を同時並行で操作する際、コマンド実行履歴が端末間で共有できなくて困る事が多々あります。「さっきのfindコマンドをもう一度... 引数どう書くんだっけなぁ... あ、確かコマンド履歴にあったはずだなぁ... ちっ、それはあっちの端末の履歴だったか」みたいな。zshには端末間のコマンド履歴を常に同期できる'SHARE_HISTORY' なるオプション(*1)があって素敵なのですが、同じことを bash で実現する方法を調べたのでご紹介。 (*1) zshの同機能について詳しくはITmedia記事 "豪傑の三種の神器【後編】" を参照の事 不具合) 通常設定のbashで困る事 1. 複数端末間でコマンド履歴の共有ができない 同時に立ち上げている端末間で履歴の共有ができなくて不便に感じることがある。 2.
vimは使いこなしている人は超人のように使いこなしているのですが、「たまにconfファイルいじる時だけ使うよ。まあ、普段はemacsだけどね」という人は、vi時代の機能のみ使っているのをたまに見かけます。 そこで、通ぶって恐縮なのですが、僕が普段vimを使っていてとっても便利で効率が上がると思う操作を紹介したいと思います。また、僕自身が Mac OS X な環境なので、「外部コマンドとの連携」などでWindowsだと再現できないものがあるかもしれません。ごめんなさい。 用語の使い方や理解が間違っている部分があるかもしれませんがその場合はご指摘いただければと思います。あと、「これ抜かしちゃ駄目でしょ!」みたいなのがあればアドバイスお願いします〜。 それでは、 [あとで読む] vimの基本操作 (知っていると思うので省略) 超概略 挿入モードと編集モード キー操作 内容 i 挿入モード突入(文
(English) Wiki links 日本語環境 Debianのetchでの日本語環境設定について記します。皆さんの設定の参考にしてください。(他の非西欧言語を使う際にも参考になるでしょう。) 細かいコマンド自体の説明はここではしないので、manpageを参考にしてください。 日本語環境のみによらず多言語環境をスムーズ設定・利用するには、Debian 4.0 (etch)以降では必ずUTF-8のエンコーディング使うロケールを選ぶようにしてください。 日本語環境に必要なパッケージ 以下に日本語環境整備に必要とされるパーケージをリストします。(日本語以外は言語環境taskを参考に探してください。) 日本語入力 ibus系を選んだ場合に導入するパッケージ(私はこれを使ってます) im-configパッケージを導入 ibus-mozcと自動的に導入されるパッケージを導入 (ibus-anthy
社内の共有サーバのディスクが壊れて、一部読み書きできないセクタがあるようなので、注文した交換用のディスクが届くのを待つ間に、Linuxのdd_rescueを使ってバックアップをとることにしました。 dd_rescueはディスクイメージをそのままコピーするddとほぼ同じ機能を持つコマンドで、とくにエラーが出る可能性があるディスクからデータを取り出すために、 ・エラーセクタがあっても、コピーを続行できる(これは、ddのconv=noerrorオプションに相当する機能です) ・ファイルの後ろから順にコピーすることができる ・現在の進捗やエラーの発生回数の詳細な表示ができる などの機能が強化されているものです。 たとえば、/dev/sdaの10Gバイト目から1Gバイト分のバックアップをとりたい場合は、次のようにします。 dd_rescue -A -m 1073741824 -s 107374182
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く