CentOS5に付属しているtarコマンド(GNU tar)が高機能で、ある日付以後に修正が入ったファイルだけをバックアップするというオプションがついています。–newer-mtimeオプションというやつです。
以下、man tarを抜粋
--newer-mtime DATE
like --newer, but with a DATE
例えばこのコマンドを使って、2012/01/01以後に出力されたログファイルだけを対象にバックアップを取得するには以下を実行すればいいわけです。
$ tar cvfz /var/tmp/backup.tar.gz --newer-mtime 2012-01-01 /var/log
Windows 7からFreeBSDに対して差分バックアップを取得したかったので、rsync(cygwin)を導入しました。導入は至ってかんたんで、cygwinのsetup.exeから導入しました。
ただ普通にバックアップしようとすると、以下のエラーが出て困りました。。
$ rsync.exe -avz --delete /cygdrive/d/Java/ www.example.com:/backup/Java sending incremental file list created directory /backup/Java ./ rsync: failed to modify permissions on "/backup/Java.": Permission denied (13) rsync: opendir "/backup/Java." failed: Permission denied (13) apache-maven-3.0.3/
cygwin上ではWindows上のパーティション(Cドライブとか)は/cygdrive/c配下にマウントされますが、cygdrive上のパーミッションが以下のように見えていて、ディレクトリが権限不足になることが原因のようですね。ま、環境によると思います。
d---------+ 1 ???????? ???????? 0 Mar 21 2011 Program Files d---------+ 1 ???????? ???????? 0 Sep 24 15:44 tmp d---------+ 1 ???????? ???????? 0 Oct 16 15:34 Java d---------+ 1 ???????? ???????? 0 Dec 18 22:00 Program Files (x86)
今回は以下chmodオプションで回避しましたが、少々ださいな・・・
rsync.exe -avz --delete --chmod=u+rwx /cygdrive/d/Java/ www.example.com:/backup/Java
Webアプリケーションではキャッシュさせない実装が割と多いと思います。
CakePHP 1.3の場合、boforeFilter()に$this->disableCache()を追加するだけでキャッシュを無効化できるから楽ちんですね。ちなみにソースは以下。cake/libs/controller/controller.phpに書いてます。
function disableCache() {
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
}
Cache-Control: post-check/pre-checkの意味はMSDN参照。
Cache-Control: no-store, no-cache, must-revalidate/Pragma: no-cacheはIPA参照。
FreeBSD 9.0 RELEASEが 2012/01/06付けで出るようですね。
タグをRELENG_9_0_0_RELEASEでcsupしたらダウンロードできたし、/usr/src/UPDATINGファイルには以下の記述が。
20120106:
9.0-RELEASE.
ただいま、BUILD中。