rsyncで指定したファイルだけを同期する

備忘録。ググると、「rsyncで指定したディレクトリを同期する」のはたくさん例があったが、「指定したファイルを同期」は見つからなかったのでちょっと戸惑った。尤も大した違いはない。

rsyncでファイルの(除外)指定を行うときは「--exclude-from」オプションが便利だ。例えば、Perl(Catalyst)で書いたシステムをごっそりコピーする例。

$ rsync -av --exclude-from=files.conf /old_dir/MyApp/ /new_dir/MyApp/

files.confの中身

+ */
+ *.pl
+ *.PL
+ *.pm
+ *.yml
+ *.conf
+ *.tt
+ *.ico
+ *.css
+ *.js
+ *.png
+ *.jpg
+ *.gif
+ *.t
- *

--exclude-fromオプションは名前とは裏腹に、「除外」だけではなく「包含」の指定も出来る。この例では各種拡張子のファイルと、中身が空のディレクトリ「*/」を「包含」指定し、最後に、それ以外を全て除外- *」している。

Squidプロクシサーバのインストール @ Mac OS X

せっかく SSD 使ってるんだから高速なプロクシサーバとして運用してみよう。ってことで Squid をインストール。いつもの通り、MacPorts にお任せだ。

$ sudo port install squid3

〜省略〜

###########################################################
# A startup item has been generated that will aid in
# starting squid3 with launchd. It is disabled
# by default. Execute the following command to start it,
# and to cause it to launch at startup:
#
# sudo launchctl load -w /Library/LaunchDaemons/org.macports.Squid.plist
###########################################################
--->  Installing squid3 @3.0.STABLE21_0
--->  Activating squid3 @3.0.STABLE21_0
--->  Cleaning squid3

説明にある通り、「sudo launchctl 〜」で起動ができるが、その前に squid.conf の設定だ。

Continue reading

【MovableType】Tidy を使って HTML を整形するプラグイン

以前、「外部リンクを明示するMovableTypeプラグイン | blog.delphinus.dev」で紹介したプラグインで、MovableType で生成する HTML をちょっとだけ整形してみた。今度は本格的なツールを使ってみよう。

HTML Tidy による整形

HTML Tidy は整形ツールとしては一番著名で強力なツールだ。歴史も古く、最初のバージョンは前世紀まで遡る。

HTML Tidy Project Page
http://tidy.sourceforge.net/

現バージョンの `HTML::Tidy` では tidyp というツールが推奨されているようだ。tidyp を使うならば、後述の `HTML::Tidy` のバージョン違いによるエラーは起こらない。詳しくはこちら。
【Perl】HTML / XML の 整形には tidy“p”? | blog.delphinus.dev

そしてそれを Perl から利用するためのモジュールが HTML::Tidy

HTML::Tidy – search.cpan.org
http://search.cpan.org/~petdance/HTML-Tidy-1.50/lib/HTML/Tidy.pm

更に HTML::Tidy を利用して、MovableType で生成する HTML の整形を行ってくれるのがこれ。

Movable Type Monday: Etelos Partnership, Plugin Development, HTML Tidy, and More | The Blog Herald
http://www.blogherald.com/2009/04/07/movable-type-monday-etelos-partnership-plugin-development-html-tidy-and-more/

3つもインストールしなければならない上、一つ一つがかなり曲者だった(Mac OS X を使っていることが主因なんだけれども)。

Continue reading

Time Machineでバックアップされないファイルたち

Time Machineは僕がMac OS Xの中で一番気に入っている機能の一つだが、一つだけ難点がある。それはすべてのファイルをバックアップするわけではないことだ。

よくあるトラブルとして、Time Machineからのフルリストアをやった後にApacheが起動できなくなるというものがあった。これは「/private/var/log」ディレクトリがバックアップ対象となっていないために、access_logなどのログファイルが作成不能になることが問題だ1

Coffee and Ashtray: Mac Timemachine復元後 Apache起動しない
http://coffeeash.blogspot.com/2009/04/mac-timemachine-apache.html

何がバックアップされないか

バックアップされないものには次のようなものがある。

  • キャッシュディレクトリ(~/Library/Cachesなど)
  • テンポラリディレクトリ(/tmpなど)
  • マウント用のディレクトリ(/Volumes
  • スワップファイル(/var/vm
  • ログファイル(/var/log

最後のログファイルが問題である。大規模なサイトを構築してものすごい量のログファイルが作成される環境なら、Time Machineの対象にしないのもわかる(代わりにDVDなどに焼くだろう)。でもうちみたいな小規模な鯖じゃそこまでする気にはなれない。それに、マシンに障害が起こってTime Machineから復旧したとしても、ログファイルが残ってなければ原因の調べようもないではないか。

というわけで、Time Machineにバックアップされないファイル・ディレクトリの完全なリストはどこにあるのか調べていたら、次のような情報があった。

Continue reading

AWStatsでちょっとリッチなアクセス解析 @ Mac OS X

100301-0001.png

すでにWebalizerは導入済みなのだけれど、もうちょっとリッチなアクセスログ解析システムが欲しくなった。ググってみるとそのようなシステムはいくつかある。

Analog: WWW logfile analysis
http://analog.cx/

Visitors – fast web log analyzer
http://www.hping.org/visitors/index_jp.php

Home of The Webalizer
http://www.mrunix.net/webalizer/

AWStats – Free log file analyzer for advanced statistics (GNU GPL).
http://awstats.sourceforge.net/

参考:Google Analytics にてアクセスIPをチェック|トピックを表示
http://forum.tsukaeru.net/viewtopic.php?t=3470

いろいろある中でもPerlで書かれてて中身がわかりやすそうなAWStatsを選んだ。こいつは前に導入したWebalizerよりずっと優れていて、解析結果が細かいだけでなく、スクリプトまで書いて対処した問題に煩わされることもない。

Continue reading

CentOSでperl 5.10.1 + Catalyst + mod_perl

CentOS 5.4は未だにperl-5.8.8なので、perl-5.10.1をソースからインストールした。この作業は簡単なので詳細は省く。

$ tar jxvf perl-5.10.1.tar.bz2
$ cd perl-5.10.1
$ ./Configure -de
$ make
$ make test
$ sudo make install

しかし標準でインストールされるmod_perlはあくまでperl-5.8.8用にビルドされている。本当ならSRPMを落としてきてリビルドするのがいいのだが、面倒なのでmod_perlのソースからインストールする。

mod_perlのインストールにはapxsが必要だ。これはhttpd-develパッケージに入っている。

$ sudo yum install httpd-devel

後はいつもの手順通り、mod_perlのインストールだ。

Continue reading

Webalizerで文字化けを解消する、他

以前の記事「Mac OS XにWebalizerをインストール → DNSCacheでハマる」ではMac OS XにてWebalizerをインストールする方法を書いた。このとき日本語化するオプション(--with-language=japanese)をつけたのだが、これによって用語が日本語化される代わりに、Total Search Strings(検索文字列リスト)が文字化けしてしまう。

100222-0001.png

原因は、検索文字列のエンコーディングにUTF-8が使用されているのに引き替え、HTML自体にはEUC-JPが使われているためだ。しょうがないので、作成したHTMLファイルに細工を加えることにする。

Continue reading