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]
(略)
セクターが読めなかったということでいいのかな?
社内向けに作成手順を作ろうとしていたら、文書で書くより半自動化スクリプトを書く方が早くて、こんなのを作ってしまった。
#!/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
英語版x64でないと Windows Virtualization が使えないのは知っていたが、そこに至るまでの手順が書いてあるのがいい。
技術力で Google と真っ向勝負するのは辛いもんなあ。
技術力にしろデザイン面にしろ、とりあえず Google に勝てると思えるだけの何かがないと ベンチャー立ち上げは出来ないと思う。