2007-10-01

λ smartd からエラー報告

SCSIドライブでエラーが発見されたというエラーメールが飛んで来た。

This email was generated by the smartd daemon running on:

   host name: server.example.com
  DNS domain: example.com
  NIS domain: 

The following warning/error was logged by the smartd daemon:

Device: /dev/da1, Self-Test Log error count increased from 0 to 1

For details see host's SYSLOG (default: /var/log/messages).

You can also use the smartctl utility for further investigation.
No additional email messages about this problem will be sent.

smartctl -l selftest /dev/da1 でエラー内容の確認:

SMART Self-test log
Num  Test              Status                 segment  LifeTime  LBA_first_err [SK ASC ASQ]
     Description                              number   (hours)
# 1  Background long   Failed in segment -->       2   12396         143373525 [0x3 0x11 0x0]
(略)

セクターが読めなかったということでいいのかな?

λ [FreeBSD] Trac 新規プロジェクト設置スクリプト

社内向けに作成手順を作ろうとしていたら、文書で書くより半自動化スクリプトを書く方が早くて、こんなのを作ってしまった。

#!/bin/sh
# $1 : targetdir Suvbersionリポジトリおよび trac データ等を置くディレクトリを指定する
# $2 : Administrator Account Trac の管理者として利用するアカウントを指定する
# $3 : targetname (Apache configuration /$targetname-svn , /$targetname-trac) httpアクセスする際のURLに埋め込まれる名前を指定する
#
# 例1 : /local/sbin/TracCreate.sh /home/hogelab h HogeLab
# 例2 : /local/sbin/TracCreate.sh /home/hoge-dev h
apacheconfdir=/usr/local/etc/apache22/Includes
authuserfile=/usr/local/etc/apache22/digest
# authname に digest 認証で利用する
authname=example.com
targetdir=$1
adminaccount=$2
targetname=$3
test -n "$targetdir" || exit 1
test -n "$adminaccount" || exit 1
# test "$targetname" || exit 1
test -n "$targetname" || targetname=`echo $1 | sed 's/.*\///'`

tempfoo=`basename $0`
svndir=$targetdir/svn
tracdir=$targetdir/trac

CreateConfigurationSvn()
{
local targetname=$1
local conffile=$apacheconfdir/svn_$targetname.conf
local tmpfile=`mktemp /tmp/${tempfoo}.XXXXXX` || exit 1
cat > $tmpfile << __EOF__
##### SubVersion Repository (WebDAV)
<Location /$targetname-svn>
    DAV svn
    SVNPath "$svndir"
    SVNIndexXSLT "/svnindex.xsl"
    SSLRequireSSL
    SSLVerifyClient require
    SSLUserName SSL_CLIENT_S_DN_CN
    <Limit GET HEAD PROPFIND OPTIONS REPORT>
        Order allow,deny
        Allow from all
    </Limit>
    <Limit PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK MKACTIVITY CHECKOUT MERGE>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET HEAD PROPFIND OPTIONS REPORT PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK MKACTIVITY CHECKOUT MERGE>
        Order deny,allow
        Deny from all
    </LimitExcept>
</Location>
__EOF__

chmod 644 $tmpfile
sudo mv $tmpfile $conffile
sudo ci -u -mx -t- $conffile
}

CreateConfigurationTrac()
{
local targetname=$1
local conffile=$apacheconfdir/trac_$targetname.conf
local tmpfile=`mktemp /tmp/${tempfoo}.XXXXXX` || exit 1
local hostname=`hostname`
cat > $tmpfile << __EOF__
# $targetname
<Location "/$targetname-trac">
  SetHandler mod_python
  PythonHandler trac.web.modpython_frontend
  PythonOption TracEnv "$tracdir"
  PythonOption TracUriRoot /$targetname-trac
  SetEnv PYTHON_EGG_CACHE "/tmp/traccache"
  SSLRequireSSL
  SSLVerifyClient require
</Location>
<Location "/$targetname-trac/login">
  AuthType Digest
  AuthName "$authname"
  AuthDigestDomain /$targetname-trac/ http://$hostname/$targetname-trac/ https://$hostname/$targetname-trac/
  AuthDigestProvider file
  AuthUserFile $authuserfile
  Require valid-user
</Location>
__EOF__

chmod 644 $tmpfile
sudo mv $tmpfile $conffile
sudo ci -u -mx -t- $conffile
}

sudo mkdir $targetdir
sudo chown www $targetdir
sudo chgrp www $targetdir
sudo -u www svnadmin create $svndir
sudo -u www svn mkdir -m'standard directories' file://$svndir/trunk file://$svndir/branches file://$svndir/tags
sudo -u www trac-admin $tracdir initenv $targetname sqlite:db/trac.db svn $svndir /usr/local/share/trac/templates
env LANG=ja_JP.UTF-8 sudo -u www trac-admin $tracdir << __EOF__
component remove component2
milestone remove milestone2
milestone remove milestone3
milestone remove milestone4
priority add 緊急
priority add 高
priority add 中
priority add 低
priority remove blocker
priority remove critical
priority remove major
priority remove minor
priority remove trivial
ticket_type add 不具合
ticket_type add 機能追加要求
ticket_type add タスク
ticket_type add チューニング
ticket_type remove defect
ticket_type remove enhancement
ticket_type remove task
severity add 通常
severity add 常にシステム停止
severity add 稀にシステム停止
severity add 不整合が拡大中
severity add 不整合が常に表面化
severity add 不整合が稀に表面化
severity add 不整合は存在しない
permission add $adminaccount TRAC_ADMIN
__EOF__

# call internal functions
CreateConfigurationSvn $targetname
CreateConfigurationTrac $targetname

echo Please configure your component and milestones

λ Windows Server 2008 RC0 ファーストインプレッション

英語版x64でないと Windows Virtualization が使えないのは知っていたが、そこに至るまでの手順が書いてあるのがいい。

λ WEB系ベンチャーは技術で差別化するのが難しい

技術力で Google と真っ向勝負するのは辛いもんなあ。

技術力にしろデザイン面にしろ、とりあえず Google に勝てると思えるだけの何かがないと ベンチャー立ち上げは出来ないと思う。

[]