タグ

ブックマーク / trombik.mine.nu/~cherry (6)

  • I, newbie » 大量にメールがキューにたまってしまったら

    なんらかの理由で数万通単位でキューにメッセージがつまってしまった場合どうするか。 まずなにより最初にすべきことは、メールサーバの停止。原因がなんであれ、万単位でキューにたまっているなら、いったん止めなければ復旧作業もままならない。おそらくキューから大量のメッセージを削除することになるだろうし、Postfixはメッセージの状態に応じて、ファイルをあちこちのディレクトリに移動させるため、その際には激しいディスクアクセスをともなう。ゆえに、mailq1つ実行するのにもディスクに足を取られて、作業にならない。同じサーバでvirus scannerなんぞが動いていたら目も当てられないくらい動作に影響がでているはず。もちろん、相応のディスクを持っていてそんなの平気なら、止めずに作業ができるかもしれない。でもふつーは無理だと思った方がいい。サービスの停止に躊躇するかもしれないけれど、いずれにせよ大幅なメ

  • I, newbie » ssh(1)を使い倒す

    sshを使いこなしていないひとを見るとイラっとする。パスワード認証大好き(もう21世紀ですよ)、パスフレーズ入れるのが面倒(keychain使えよ)、放っといたssh接続が切れて「また切れた!」(screen使えよ)とか。 ()は~/.ssh/configにおける同等の設定。詳しくはssh(1)とssh_config(5)を参照のこと。 一定期間ごとにパケットを送って、無通信時間経過によりセッションが切断されるのを回避する。 > ssh -o 'ServerAliveInterval 60' host.example.org (ServerAliveInterval 60) ssh-agentのforwardingを有効にして、login先のホストでもパスフレーズの入力を省略する。 > ssh -A host.example.org (ForwardAgent yes) remoteのコン

  • I, newbie » POEによるevent-drivenなPerlプログラミング その1

    POEはevent-drivenなmultitasking frameworkです。最近では名前こそ知られてきたものの、(上級者を除くと)広く使われてはいません(ただし歴史は長いし、採用事例もたくさんあります)。なぜかというと、かなーり奥が深くて、ドキュメントが膨大で、しかもソースコードの上から順に実行される一般的なPerlプログラムと大きく異なるイベント駆動なフレームワークだからでしょう。自分も、「なんかPOEってすごいらしいよ」と耳にしてから少しずつ勉強していたんですが、どーも理解が進まなくて苦労しました。そんな最初のハードルを低くするような文書が欲しかったので、書いてみることにします。 POEは、event-drivenなプログラムに最適です。event-drivenなプログラムとは、何らかのイベントが起きたらなんらかの処理をする、そういうプログラムです。例えば、GUIアプリケーショ

  • I, newbie » バックアップならBaculaでしょ

    「21世紀にssh(1)でtarとかありえない」みたいなことを書いたけど、使ってるツールそのものに加えてありえないのは、バックアップに求められる要件がありえない。20世紀だったら単なるファイルのコピーでもよかったかもしれないけど、今時要求されるバックアップってそんな単純なものじゃない。バックアップしたファイルの暗号化、通信経路の暗号化、柔軟な差分とスケジュール、複数のストレージへのバックアップとか。バックアップ対象にWindowsが入ってないし。 「2008年の」とか「最近の」というキーワードなら、ファイルシステムのスナップショット機能を活用したバックアップだと思う。UFS2とZFSで使える。LinuxならLVM。 FreeBSD UFS/ZFS Snapshot Management Environment sysutils/freebsd-snapshot Solaris ZFS Ad

  • I, newbie » Mooseによるオブジェクト指向Perl

    Mooseは”an extension of the Perl 5 object system”だそうで、なんかすごいらしい。使ってみるとattributeやaccessorの追加も簡単で、型の確認も自動でやってくれてrobustなclassを作るのに便利。attributeがarrayやhashのreferenceだったら、contextに応じて自動的にdereferenceしてくれるとか、extendやoverrideがやりやすいとか、他にもいろいろあるらしい。Mooseは自動的にhash-basedのobjectを作ってくれる。methodを追加する方法も古典的なPerl5のOOPと同じ。 package Foo; use strict; use warnings; use Moose; sub say { my ($self, $str) = @_; print "$str\n";

  • I, newbie » DBIx::Class::SchemaでSQLを生成できるらしい

    DBIx::Class::Schema::Loaderで既存のデータベースからDBIx::Class::Schemaを作成できるなら、DBIx::Class::SchemaからスキーマのSQLを生成することだって可能なんじゃないかと思って、DBIx::Class::Schemaのマニュアルを眺めていたら、create_ddl_dirなんつーメソッドがあった。EXPERIMENTALだけど。実行にはSQL::Translatorが必要。しかもDBIx::Class::Schema::Versionedなんつーものもあるんですか。RoRっぽくスキーマをアップグレードできるらしい。とりあえずMySQLとPostgreSQLSQLが欲しかったので、create_ddl_dirでdumpしてみた。 #!/usr/bin/perl use strict; use warnings; use lib

  • 1