PC関係のメモ
Logwatchでメールの送信元を設定する
RHEL/CentOSの4.xか5.xかでLogwatchのバージョンが異なり、送信元の変更方法が異なる。
5.xは設定ファイルの変更で可能。
4.xのLogwatchでは設定で変更できないため、スクリプトを変更する必要がある。
5.xの場合。設定ファイルに下記を追記するだけ。
# /etc/logwatch/conf/logwatch.conf に追記 MailTo = root@example.com mailer = "sendmail -t -f root@example.com"
テストするには下記のようにコマンドを発行する。
# /etc/cron.daily/0logwatch
もし、何も送られない場合は送られなる内容を表示してみる(--print)。範囲も全部(--range all)で。
もしかしたら送信すべき内容が無いため送られていないかもしれない為。
# /etc/cron.daily/0logwatch --range all --print
4.xの場合。まず設定ファイルを書き換える。
# mailer = /bin/mail <-- コメントアウト mailer = "sendmail -t -f root@example.com" MailFrom = root@example.com
次にスクリプトを書き換える。スクリプトのバージョンによっては変更箇所が微妙に異なるため注意。下記はLogwatch 5.2.2 (released 06/23/04)での変更箇所。
$ diff 00-logwatch /etc/cron.daily/00-logwatch
679c679,689
< open(OUTFILE,"|$Config{'mailer'} -s \"LogWatch for $Config{'hostname'}\" " . $Config{'mailto'}) or die "Can't execute /bin/mail\n";
---
> #open(OUTFILE,"|$Config{'mailer'} -s \"LogWatch for $Config{'hostname'}\" " . $Config{'mailto'}) or die "Can't execute /bin/mail\n";
>
> open(OUTFILE,"|$Config{'mailer'}") or die "Can't execute /bin/mail\n";
>
> print OUTFILE "From: $Config{'mailfrom'}\n";
> print OUTFILE "To: $Config{'mailto'}\n";
> print OUTFILE "Subject: LogWatch for $Config{'hostname'}\n\n";
> if (($Config{'splithosts'} eq 1) && ($Config{'multiemail'} eq 0)) {
> print OUTFILE "Reporting on hosts: @hosts\n";
> }
tDiaryのデータをtDiary+BlogKitに変換した
旧ブログはtDiary。新ブログはtDiary+BlogKit。
データがtDiaryは日単位、tDiary+BlogKitは記事単位になっている。
日単位のデータはもう分割することなくそのまま複数記事まとめて1記事とすることにした。
タイトルは、記事内のタイトルを/で繋げたものにすることにした。
1日=1記事の場合は記事中のタイトルを削除した。
tDiaryのデータをtDiary+BlogKitに変換するPHPスクリプト
昼休み中にでっちあげた。
<?php
// tDiaryのデータ(*.td2)をtDiary+BlogKitに変換します
// Wikiスタイルにしか対応してません。
// 入力ディレクトリと出力ディレクトリ。環境によって書き換えて使ってください。
// 出力ディレクトリは空のディレクトリ作っておいてください。
$input_dir = dirname(__FILE__) . 'data/';
$output_dir = dirname(__FILE__) . 'output/';
ini_set('pcre.backtrack_limit', '9999999');
ini_set('pcre_recursion_limit', '9999999');
function convert($file, $dir)
{
$td2 = file_get_contents($file);
$days = preg_split('/\n\n\./s', $td2);
array_pop($days);
$output = '';
foreach($days as $day){
list($head, $body) = preg_split('/\n\n/', $day, 2);
preg_match_all('/^![^!].*$/m', $body, $titles);
for($i = 0; $i < count($titles[0]); $i++){
$titles[0][$i] = trim(substr($titles[0][$i], 1));
}
$title = implode(' / ', $titles[0]) . "\n";
$head = preg_replace('/^title:.*\n/mi', 'Title: ' . $title, $head . "\n");
if(count($titles[0]) === 1){
$body = preg_replace('/^![^!].*$/m', '', $body);
}
$output .= $head . "\n" . $body . "\n\n.";
}
$yyyy = substr(basename($file), 0, 4);
if(!file_exists($dir . '/' . $yyyy)){
mkdir($dir . '/' . $yyyy);
echo ($dir . '/' . $yyyy) . "\n";
}
file_put_contents($dir . '/' . $yyyy . '/' . substr(basename($file), 0, 6) . '.td2', $output);
}
foreach(glob($input_dir . '/*') as $file){
$file = realpath($file);
if(!is_dir($file)){
continue;
}
if(preg_match('/^[0-9]{4}$/', basename($file)) === 0){
continue;
}
foreach(glob($file . '/*.td2') as $td2_file){
convert($td2_file, $output_dir);
}
}
システムを使う/作るときに忘れてはいけないたった一つの原則
システムを使うときに忘れてはいけないたった一つの原則。
ポケットひとつの原則。
システムを作るときに忘れてはいけないたった一つの原則。
KISSの原則。
URLをwwwあり/なしに統一させる
via http://www.suzukikenichi.com/blog/integrating-www-and-non-www-by-301-redirect/
wwwありに統一する場合
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^sample\.com
RewriteRule ^(.*)$ http://www.sample.com/$1 [R=301,L]
wwwなしに統一する場合
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.sample\.com
RewriteRule ^(.*)$ http://sample.com/$1 [R=301,L]
Redirect使ってシンプルにやればいいと思ってたけど、調べてみるとmod_rewrite使ったやり方が多かったのでそれに倣って設定した。
データベースのキーの種類
キーについて整理。
- 候補キー(candidate key)は「主キーになりうるキー」
- 外部キーは「他のテーブルの主キーを参照するキー」
- 複合キーは「複数の列からなる主キー」
- 代理キー(alternate key)は「主キーに選ばれなかった候補キー」
- 代替キー(surrogate key)は「連番のように一意性を確保するためにシステムから与えられたキー」
参考
2相ロック
2相ロックについて、下記ページがわかりやすかった。
http://www.geocities.jp/sugachan1973/doc/funto60.html
上記ページで参考にされている、下記書籍も良さそう。
RDBMS解剖学 よくわかるリレーショナルデータベースの仕組み (DB Magazine SELECTION)(鈴木 幸市/藤塚 勤也)


Before...
_ hajime [スパムフィルターテスト]
_ 通りもん [SimpleTaskのデモが酷い状況になっていますよ。]
_ hajime [ありがとうございます。バージョンアップさせたので様子見してみます。]