有効期間切れアカウントのリストを作成する2011-04-16 14:00:30


# cat /etc/shadow | awk -F":" '{if($8*86400!=0&&$8*86400<systime()){print $1}}'

だいたいこれで良さそうか。。
awk初心者なのでもっといいやりかたがあるかも。

sshdの設定2011-02-20 19:40:27

リモート接続用。
鍵交換方式による認証をとる。
rootは許可しない。

# grep -v "^#" /etc/ssh/sshd_config | grep -v "^$"
Port 2222
Protocol 2
SyslogFacility AUTHPRIV
PermitRootLogin no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
PasswordAuthentication no
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
UsePAM yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL
X11Forwarding yes
Subsystem       sftp    /usr/libexec/openssh/sftp-server

authorized_keysが無い場合はファイルを作る。
パーミッションを変更するのを忘れずに。
$ mkdir .ssh
$ chmod 700 .ssh
$ vi .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys

このファイルに公開鍵を挿入する。
$ cat id_rsa.pub > authorized_keys

PuTTYでエキスポートしたOpenSSH Keyファイルは変換が必要。
$ ssh-keygen -i -f id_rsa.pub.putty > id_rsa.pub

ESXi再構築2011-02-20 11:36:46

HDD障害により、仮想マシンのハードディスクに障害が発生した。
復旧を試みるが、無理だった。
しかたないので新規一転、システム環境を再構築することにする。

とりあえず、ESXi 4.1をインストール。ついでにvSphere Clientも。

まず、リモートアクセス用のサーバ構築から始める。

データストアにCentOS 5.5 netinstall用のisoイメージをアップロードして、
新規仮想マシンでisoイメージをデータストア経由でマウントする。

設定変更点は以下のとおり。
ネットワークアダプタ:
VMXNET3は認識しなかったので、E1000に変更。
SCSIコントローラは、
VMWare準仮想~はインストーラから認識できなかったので、
LSI Logic SASに変更。


後は通常どおりのインストール。

はぁ、先は長い。



解決:Device 0 (vif) could not be connected. Hotplug scripts not working2010-09-08 23:07:59

CentOSのXenにてエラーが発生し、Domain Uが作れずにいて困っていたが、簡単なことで解決したのでメモ。ちなみに発生するエラーは以下のとおり。

# /usr/sbin/virt-install -n domu -r 1024 -f domu.img\
 -s 8 --nographics -l http://ftp.riken.jp/Linux/\
centos/5.5/os/i386/ --bridge xenbr0


Starting install...
Retrieving file .treeinfo...                             |  413 B     00:00
Retrieving file vmlinuz...                               | 2.1 MB     00:08
Retrieving file initrd.img...                            | 7.2 MB     00:25
ERROR    POST operation failed: xend_post: error from xen 
daemon: (xend.err 'Device 0 (vif) could not be connected. 
Hotplug scripts not working.')
Domain installation may not have been
 successful.  If it was, you can restart your domain
 by running 'virsh start kaken'; otherwise, please
 restart your installation.
ERROR    POST operation failed: xend_post: error 
from xen daemon: (xend.err 'Device 0 (vif) could not be 
connected. Hotplug scripts not working.')
Traceback (most recent call last):
  File "/usr/sbin/virt-install", line 889, in ?
    main()
  File "/usr/sbin/virt-install", line 751, in main
    start_time, guest.start_install)
  File "/usr/sbin/virt-install", line 813, in do_install
    dom = install_func(conscb, progresscb, wait=(not wait))
  File "/usr/lib/python2.4/site-packages/virtinst/Guest.py", line 541, in start_install
    return self._do_install(consolecb, meter, removeOld, wait)
  File "/usr/lib/python2.4/site-packages/virtinst/Guest.py", line 633, in _do_install
    self.domain = self.conn.createLinux(install_xml, 0)
  File "/usr/lib64/python2.4/site-packages/libvirt.py", line 974, in createLinux
    if ret is None:raise libvirtError('virDomainCreateLinux() failed', conn=self)
libvirtError: POST operation failed: xend_post: error from xen
 daemon: (xend.err 'Device 0 (vif) could not be connected. 
Hotplug scripts not working.')

これを直すには/sbin/start_udevを動かせば良いだけだった。udevが落ちていたのが原因みたい。よかったよかった。

awk>sort>uniq2010-04-20 00:18:54

awk→sort→uniqの組み合わせがこんなに便利とはしらなんだ。色々と用途が広がりそうだ。

# more test.dat
A 0
B 1
C 2
D 1
B 1
# awk '{print $1" "$2}' test.dat
A 0
B 1
C 2
D 1
B 1
# awk '{print $1" "$2}' test.dat | sort
A 0
B 1
B 1
C 2
D 1
# awk '{print $1" "$2}' test.dat | sort | uniq
A 0
B 1
C 2
D 1

DSpace1.6で日本語全文検索2010-04-04 23:19:12

DSpaceにて日本語N-gramを実現する。 具体的にはCJKTokenizerを使うだけだけど。

準備

まず、作業をしやすくするために、環境変数を追加する。

# vi /etc/profile

export DSPACE_SOURCE=/home/dspace/dspace-1.6.0-src-release
exourt DSPACE_HOME=/usr/local/dspace

# source /etc/profile

DSpaceソースの変更

luceneのソースファイルを手に入れる。

# cd /usr/local/src
# wget http://archive.apache.org/dist/lucene/java/lucene-2.9.2-src.tar.gz
# tar zxvf lucene-2.9.2-src.tar.gz

DSpaceのDSTokenizer.javaをCJKTokenizer.javaと入れ替える。また、合わせて幾つかのソースファイルを変更する。

# cd $DSPACE_SOURCE/dspace-api/src/main/java/org/dspace/search/
# mv DSTokenizer.java DSTokenizer.java.bak
# cp /usr/local/src/lucene-2.9.2/contrib/analyzers/common/src/java/org/apache/lucene/analysis/cjk/CJKTokenizer.java .
# mv CJKTokenizer.java DSTokenizer.java

リネームしたCJKTokenizer.javaを書き換える。まず、パッケージを変更する。

# vi DSTokenizer.java
package org.dspace.search;
//package org.apache.lucene.analysis.cjk;

また、ファイル内のCJKTokenizerをDSTokenizerに置換する。

つぎに、DSAnalyzer.javaを書き換える。

# vi DSAnalyzer.java


 /*
     * Create a token stream for this analyzer.
     */
    public final TokenStream tokenStream(String fieldName, final Reader reader)
    {
        TokenStream result = new DSTokenizer(reader);

        result = new StandardFilter(result);
        result = new LowerCaseFilter(result);
        result = new StopFilter(result, stopSet);
        result = new PorterStemFilter(result);
        //追加
        result = new StopFilter(result, new String[] {""});

        return result;
    }

DSpaceのリビルドと索引の作成

あとは、DSpaceをリビルド。

# cd $DSPACE_SOURCE/dspace/target/dspace-1.6.0-build.dir/
# ant -Dconfig=$DSPACE_HOME/config/dspace.cfg update

索引を再作成する。

# cd $DSPACE_HOME
# bin/index-update
Creating browse index
Creating search index
#

これで、日本語全文検索が可能となった。はず。

DSpace1.6のインストールメモ62010-04-04 16:04:43

User Registrationにて発生していたInternal Error。DspaceとTomcatの両方のログにはエラーが表示されず困っていたが、結局、読み込まれているJavaMailのバージョンが古いことが理由だった。

# pwd
/var/lib/tomcat5/common/lib
# ls -all \[javamail\].jar
lrwxrwxrwx 1 root root 28 Apr  4 08:04 [javamail].jar -> /usr/share/java/javamail.jar
# ls -all /usr/share/java/javamail.jar
lrwxrwxrwx 1 root root 26 Mar 26 18:37 /usr/share/java/javamail.jar -> /etc/alternatives/javamail
# ls -all /etc/alternatives/javamail
lrwxrwxrwx 1 root root 52 Mar 26 18:37 /etc/alternatives/javamail -> /usr/share/java/classpathx-mail-1.3.1-monolithic.jar

CentOS5.4にインストールされているJavaMailのバージョンは1.3.1。Dspaceに含まれているものよりも古い。このシンボリックリンクを削除することでエラーが発生しなくなり、無事メールが送信されるようになった。