tarコマンドの–newer-mtimeオプション

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
Posted in Linux | Leave a comment

Windows(cygwin)でのrsync

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
Posted in Windows | Leave a comment

CakePHPでのキャッシュコントロール

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参照。

Posted in PHP | Leave a comment

FreeBSD 9.0 RELEASEがでるぞー

FreeBSD 9.0 RELEASEが 2012/01/06付けで出るようですね。

タグをRELENG_9_0_0_RELEASEでcsupしたらダウンロードできたし、/usr/src/UPDATINGファイルには以下の記述が。

20120106:
        9.0-RELEASE.

ただいま、BUILD中。

Posted in freebsd | Leave a comment

FreeBSDのCVSタグ

このホストはFreeBSD-9.0をcsup経由でbuildして使っていますが、freebsd-updateでRELEASE-9.0等にアップデートしようとすると以下のエラーが出たので。。。

# freebsd-update fetch
Looking up update.FreeBSD.org mirrors... 4 mirrors found.
Fetching public key from update4.FreeBSD.org... failed.
Fetching public key from update5.FreeBSD.org... failed.
Fetching public key from update3.FreeBSD.org... failed.
Fetching public key from update2.FreeBSD.org... failed.
No mirrors remaining, giving up.

freebsd-updateはRELEASE間のアップデートには対応しているけどstable -> releaseって対応していないんですね。

なので、csupでreleaseに対応するstableを引っ張ってくる方法を探していました。

FreeBSDのページにCVS tagというところがあり、ばっちり書いていますね。参考になりました。

Posted in freebsd | Leave a comment

FreeBSD 9.0(PRERELEASE) on ZFS root

FreeBSD 9.0 (PRERELEASE) on ZFS rootにチャレンジしてみました。安定して動くのでおすすめですね。早くインストーラがZFSインストールに対応してくれればいいのにな。

http://wiki.kinusati.net/index.php/FreeBSD:FreeBSD9.0(amd64)_on_ZFS

Posted in freebsd | Leave a comment

VMware Playerのサービス化

sexeを使うと簡単にVMware Playerをサービス化できます。

1. sexeをインストール

2. sexeを起動してサービスを登録。起動時オプションにVMXファイルのパスをフルパスで指定する必要があります。登録が終わったらOKボタンを教えてください。

3. サービスの画面から、アカウントでログオンする設定を追加する。

これで無事登録完了です。自動起動はすてきです。

 

Posted in VMware, Windows, 未分類 | Leave a comment

MySQL4.0以前に作成したアカウントがMySQL5.5で利用できない

MySQLを5.5にバージョンアップしたら、PHP経由でデータベースに接続できないという不具合にぶち当たりました。

よくよく調べてみると、MySQL4.0以前に作成したアカウントだけ接続できない模様。

http://dev.mysql.com/doc/refman/5.5/en/old-client.html

C.5.2.4. Client does not support authentication protocol
MySQL 5.5 uses an authentication protocol based on a password hashing algorithm that is incompatible with that used by older (pre-4.1) clients. If you upgrade the server from 4.0, attempts to connect to it with an older client may fail with the following message:
...

とりあえず平文パスワードはわかったので、パスワードを再設定して事なきを得ました。パスワードをリセットする方法もあると公式ページで書いているので間違いないでしょう。

Reset the password to pre-4.1 style for each user that needs to use a pre-4.1 client program. This can be done using the SET PASSWORD statement and the OLD_PASSWORD() function:

mysql> SET PASSWORD FOR
    -> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');
Alternatively, use UPDATE and FLUSH PRIVILEGES:

mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')
    -> WHERE Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;
Substitute the password you want to use for “newpwd” in the preceding examples. MySQL cannot tell you what the original password was, so you'll need to pick a new one.
Posted in MySQL | Leave a comment

Linuxのcron

Solarisと違って、Linuxのcronで「%」(パーセント)を利用するためにはエスケープしないとダメなんですね。はまりました。

$ man 5 crontab
...
「 第 6」フィールド (行の残りの部分) には実行されるコマンドを指定する。その行のコマンド部 (改行文字ま
たは % 文字まで) が /bin/sh (またはその crontab ファイルの SHELL 環境変数で指定されたシェル) によって
実 行される。コマンド中にパーセント記号 (%) がバックスラッシュ (\) によってエスケープされずに置かれて
いると、改行文字に置き換えられ、最初に現れた % 以降の全てのデータは標準入力としてコマンドに送られる。

覚えておきましょう。

Posted in Linux | Leave a comment

TeraTermの自動ログ取得設定

TeraTermProでログを自動で取得する設定のメモ。

WS000019

&hでログファイル名にホスト名が出力されることがポイントです。

例)

C:\Users\hogehoge\Documents\teraterm-20110925_075901_www.example.com.log

便利ですね。

Posted in 未分類 | Leave a comment