タグ

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

  • 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 » FreeBSDのportを書こう

    FreeBSDのportsは18,000を越えるportがある。ヘッダとかを別のパッケージにしてしまうバイナリLinux distributionはパッケージ数が膨張する傾向があるので、これは十分すごい数だと思う。今回はportを自分で書いてしまおうというネタ。 いちおう、portを作る人のためのマニュアルがFreeBSD Porter’s Handbookとしてあるんだけど、いまいち最新の状況に追いついていない。ただ、ここで解説する内容はだいたいカバーしているので一読をお勧めする。 portsになくて、よさそうなソフトウェアがあったらportを書きましょう。portsにあるかないかは以下の手順で確認できる。 > cd /usr/ports > make search name=FOO もしくは、ports-mgmt/portsearchを使うという手もある。 > portsearch -

  • I, newbie » 自分ならシリーズ: インシデント対応

    [重要なお知らせ] MOONGIFTにてウィルスが感知されました 日、読者の方からのご指摘により判明したのですが、jWorkSheetという記事中において、ウィルスが検知されました。検知されたウィルスは以下のものです。大変申し訳ございません。 感染経路については、確定ではありませんがWordPressのXML-RPCのバグ(最新版では解決済みと思われます)をついたものと思われます。 なお、この問題についてはWordPressの最新版の適用と、問題になったXML-RPCについてもデフォルト名は利用しないように修正したことで解決したと思われます(まだ情報がおいきれておりません)。全てはMOONGIFTにおいてWordPressの更新を怠ったことが原因です。申し訳ございません。今後、同様の問題が発生しないよう、注意致します。 とりあえず「うちではよくわからんから、他をあたってくれ」というニュア

  • 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 » Puppetでnode情報を外部から取ってくる

    disるだけじゃなんなので、ヒントをあげよう。 Puppetではnode情報を外部(LDAPだけでなく)からとってくることが可能になっていて、任意のスクリプトの出力結果をnode情報として扱える(ただし、0.23以前と0.24以降では、出力形式が大幅に異なることに注意、以下のスクリプトは0.24以降を想定)。 node情報をYAML形式にして、nodes.ymlとして保存。 host.example.org: classes: - basenode parameters: key: value これは以下に等しい。 node 'host.example.org' { $key = 'value' include basenode } 適当なディレクトリに以下のスクリプトを用意。 #!/usr/bin/perl # puppet_node.pl use strict; use warning

  • I, newbie » PerlによるDNSのテスト - Test::Base

    perldoc Test::Baseしてもさっぱりピンと来なかったけど、”use Test::Base;” (PDF 172KB)を読んだら5秒で理解できた。いろんなひとがいろんな方法で説明するのは大事です。filterが期待する入力値(scalarなのかlistなのか)とfilterの出力を理解するのに手間取ったけど。まずはfoo.tを書いて、徐々にfactor outするのがいい。書けば書くほどごちゃごちゃしていくのがTest::More、逆にテストがキレイになっていくのがTest::Base。それにTest::Builderは、使い勝手がいいとはあまり言えないし。 package Test::DNS; use strict; use warnings; use Test::Base -Base; use Net::DNS; our $res = Net::DNS::Resolver-

  • I, newbie » DBIx::ClassでSELECT FOR UPDATE

    DBIx-Class - SELECT … FOR UPDATEその後」でできるようになったらしいけど、マニュアルに何にも書いてない。SQL::Abstractにも使えるとは書いてない。どーなったんじゃー、とソースを追っかけて、DBIC::SQL::Abstractを探してはまった。DBIx::Class::Storage::DBIの中でDBIC::SQL::Abstractが宣言されてた。よくpatchを読みなさい、ということ。で、結局使えるらしい。 $rs = $schema->resultset('Table')->search( { id => $id }, { for => 'update', } ); DBI_TRACE=1してSQLクエリを覗いたら、ちゃんとFOR UPDATEになってた。便利便利。

  • I, newbie » プログラマへのお願い

    インストールに必要な要件を書いてください。なにが必要で、なにがオプションなのか書いてください。 配布物のファイル名はてきとーにしないでください。package-$major-$minor.tgzでなぜだめですか。package-$major-rc4-$date-beta.tgzとか嫌がらせですか。 同じファイル名で違う内容の配布物を再リリースしないでください。hash値ってファイル名とその内容に対して作成されるんですよ。どんな小さな修正でもバージョンを上げてリリースしてください。 インストーラを再発明しないでください。対話的なインストーラだからインストールが簡単ですよって、人間がインストールすると仮定しないでください。そういうのはパッケージ管理システムに任せてください。 エラーをSTDOUTに出力しないでください。通常の出力はSTDOUT、エラーなどはSTDERRであることが期待されていま

  • 1