2008-01-26 22:04:40

fsckでサルベージ

[ Linux ]

突然の電源断で CentOS4.4 (x86_64) が正常にシャットダウンできなくなった。
read only うんぬんで各種デーモンの pid が消えない等のエラーが出力される。

異常終了後、サーバを起動させるとオートの fsck が試みられたが失敗。
root のパスワードを入れて手動で対処するよう OS に促された。
そこで root パスワード入力後 fsck 実行。オプション無し。
Enter でデフォルトの Yes 回答を繰り返す。

再起動後、
/lost+found
にデータの残骸がある。

[root@server lost+found]# ls -alth
total 52K
drwxr-xr-x  24 root     root     4.0K Jan  9 11:44 ..
-rw-------   1 postgres postgres    6 Jan  7 09:57 #46531638
-rw-r--r--   1 user    user     15K Jan  4 09:36 #7161585
-rw-------   1 postgres postgres  505 Jan  4 09:00 #46531560
-rw-r--r--   1 user    user     407 Jan  4 07:00 #10165485
drwx------   2 root     root      16K Feb 10  2006 .
[root@server lost+found]# file *
#10165485: Non-ISO extended-ASCII text
#46531560: data
#46531638: data
#7161585:  Non-ISO extended-ASCII text, with very long lines, with LF, NEL line terminators

バイナリはあきらめて、vi で中身がわかるものだけサルベージ。
その後、すぐバックアップ。

2008-01-05 12:37:21

vim オートインデントをオフにする

[ Linux ]

Fedora7での話。
いつからか、改行時に自動でインデントされるようになった気がする。・・・とても不便。

/etc/vimrc で

filetype plugin on

となっているとプラグインが全て使われるようだ。
そのためオートインデントも有効になってしまう。

filetype plugin on
filetype indent off

上記のようにオートインデントのみ打ち消せばOK

2007-09-06 20:33:42

mod_cband

[ Linux ]

SRPM取得
$ wget http://ftp.riken.jp/pub/Linux/fedora/releases/test/7.90/Fedora/source/SRPMS/mod_cband-0.9.7.5-1.fc7.src.rpm

$ rpm -ivh mod_cband-0.9.7.5-1.fc7.src.rpm

そのままでは入らない。
apxsの場所を指定するようspec書き換え
$ vim /home/user/rpmbuild/SPECS/mod_cband.spec

%build
%configure \
    --with-apxs=/usr/sbin/apxs ←追加
make %{?_smp_mflags}

ビルド
$ rpmbuild -ba /home/user/rpmbuild/SPECS/mod_cband.spec

インストール
# cd /home/user/rpmbuild/RPMS/i386
# rpm -ivh mod_cband-0.9.7.5-1.fc7.i386.rpm mod_cband-debuginfo-0.9.7.5-1.fc7.i386.rpm

設定
#vim /etc/httpd/conf/httpd.conf

CBandRemoteSpeed 10240kb/s 40 5

とりあえず CBandRemoteSpeed のみ設定

#設定2
#vim /etc/httpd/conf.d/mod_cband.conf

<Location /cband-status>
SetHandler cband-status
Order allow,deny
Allow from 192.168.0.2 ←ブラウザ確認用IPアドレス
</Location>


ブラウザで確認
http://192.168.0.1/cband-status

ex)
http://www.howtoforge.com/mod_cband_apache2_bandwidth_quota_throttling

2007-09-06 20:31:54

fedora7のcron問題

[ Linux ]

/etc/cron.daily/
の中身の実行結果メールが届かなくなった。

通常のcrontab登録したものの結果は届いている。

ググると
crontabs.noarch 1.10-15.fc7
の問題だった。
https://bugzilla.redhat.com/show_bug.cgi?id=269961

解決
crontabs.noarch 1.10-16.fc7

2007-09-06 00:13:50

SCPコマンド

[ Linux ]

すぐ忘れる。

get
scp user@192.168.0.1:/home/usr/Hoge.tar.gz .

put
scp ./Hoge.tar.gz user@192.168.0.2:/home/user/Hoge.tar.gz

2007-07-25 22:21:59

Fedora7 perlのリビルド

[ Perl ] [ Linux ]

FedoraのPerlは遅いようだ。
ex) http://buribullet.net/svntrac/buribullet/wiki?p=Fedora%E3%81%AEPerl%E3%81%8C%E9%81%85%E3%81%84%E4%BB%B6

以下を見てリビルドする。
ex)
http://d.hatena.ne.jp/tomisima/20070320/1174407728
http://d.hatena.ne.jp/dayflower/20070320/1174370267

rpmdevtools を初めて知った。

# yum -y install rpmdevtools
$ fedora-buildrpmtree

$ wget http://ftp.riken.jp/Linux/fedora/releases/7/Fedora/source/SRPMS/perl-5.8.8-18.fc7.src.rpm -O rpmbuild/SRPMS/perl-5.8.8-18.fc7.src.rpm

$ rpm -ivh rpmbuild/SRPMS/perl-5.8.8-18.fc7.src.rpm
$ vi rpmbuild/SPECS/perl.spec

@@ -89,8 +89,8 @@
 Patch25:        perl-5.8.8-U27116.patch
 Patch26:        perl-5.8.8-U27391.patch
 Patch27:        perl-5.8.8-U27426.patch
-Patch28:        perl-5.8.8-U27509.patch
-Patch29:        perl-5.8.8-U27512.patch
+#Patch28:        perl-5.8.8-U27509.patch
+#Patch29:        perl-5.8.8-U27512.patch
 Patch30:        perl-5.8.8-U27604.patch
 Patch31:        perl-5.8.8-U27605.patch
 Patch32:        perl-5.8.8-U27914.patch
@@ -316,8 +316,8 @@
 %patch25 -p1
 %patch26 -p1
 %patch27 -p1
-%patch28 -p1
-%patch29 -p1
+#%patch28 -p1
+#%patch29 -p1
 %patch30 -p1
 %patch31 -p1
 %patch32 -p1

リビルド (src.rpm も欲しい場合はオプション -ba)
$ rpmbuild -bb rpmbuild/SPECS/perl.spec

iconv のエラーが出た。
$ which iconv
/usr/local/bin/iconv
$ locate bin/iconv
/usr/bin/iconv
/usr/local/bin/iconv

以前 iconv をソースから入れてた。/usr/local/ 以下のiconv関連を削除した。

再度リビルド
$ rpmbuild -bb rpmbuild/SPECS/perl.spec

以下のメッセージが出た。
Wrote: /home/hoge/rpmbuild/RPMS/i386/perl-5.8.8-18.fc7.i386.rpm
Wrote: /home/hoge/rpmbuild/RPMS/i386/perl-libs-5.8.8-18.fc7.i386.rpm
Wrote: /home/hoge/rpmbuild/RPMS/i386/perl-devel-5.8.8-18.fc7.i386.rpm
Wrote: /home/hoge/rpmbuild/RPMS/i386/perl-suidperl-5.8.8-18.fc7.i386.rpm
Wrote: /home/hoge/rpmbuild/RPMS/i386/perl-CPAN-1.76_02-18.fc7.i386.rpm
Wrote: /home/hoge/rpmbuild/RPMS/i386/perl-ExtUtils-Embed-1.26-18.fc7.i386.rpm
Wrote: /home/hoge/rpmbuild/RPMS/i386/perl-ExtUtils-MakeMaker-6.30-18.fc7.i386.rpm
Wrote: /home/hoge/rpmbuild/RPMS/i386/perl-Test-Harness-2.56-18.fc7.i386.rpm
Wrote: /home/hoge/rpmbuild/RPMS/i386/perl-Test-Simple-0.62-18.fc7.i386.rpm
Wrote: /home/hoge/rpmbuild/RPMS/i386/perl-debuginfo-5.8.8-18.fc7.i386.rpm

旧rpm削除
# rpm -e --nodeps perl perl-libs perl-devel perl-suidperl perl-CPAN perl-ExtUtils-Embed perl-ExtUtils-MakeMaker perl-Test-Harness perl-Test-Simple perl-debuginfo
# rm -r /usr/lib/perl5/5.8.8
# rm -r /usr/lib/perl5/site-perl/5.8.8

新rpmインストール
# cd /home/hoge/rpmbuild/RPMS/i386
# rpm -Uvh perl-5.8.8-18.fc7.i386.rpm perl-libs-5.8.8-18.fc7.i386.rpm perl-devel-5.8.8-18.fc7.i386.rpm perl-suidperl-5.8.8-18.fc7.i386.rpm perl-CPAN-1.76_02-18.fc7.i386.rpm perl-ExtUtils-Embed-1.26-18.fc7.i386.rpm perl-ExtUtils-MakeMaker-6.30-18.fc7.i386.rpm perl-Test-Harness-2.56-18.fc7.i386.rpm perl-Test-Simple-0.62-18.fc7.i386.rpm perl-debuginfo-5.8.8-18.fc7.i386.rpm

モジュールを最新版に更新
# perl -MCPAN -e 'CPAN::Shell->install(CPAN::Shell->r)'

2007-06-22 19:38:47

Fedora7にupdate

[ Linux ]

FedoraCore6->Fedora7

RPM取得
wget http://ftp.riken.jp/pub/Linux/fedora/releases/7/Fedora/i386/os/Fedora/fedora-release-7-3.noarch.rpm
wget http://ftp.riken.jp/pub/Linux/fedora/releases/7/Fedora/i386/os/Fedora/fedora-release-notes-7.0.0-1.noarch.rpm

上書き
rpm -Uvh fedora-release-7-3.noarch.rpm fedora-release-notes-7.0.0-1.noarch.rpm

リポジトリ書き換えてると以下のような表示が出る
warning: /etc/yum.repos.d/fedora-updates.repo created as /etc/yum.repos.d/fedora-updates.repo.rpmnew
warning: /etc/yum.repos.d/fedora-extras.repo saved as /etc/yum.repos.d/fedora-extras.repo.rpmsave
warning: /etc/yum.repos.d/fedora-core.repo saved as /etc/yum.repos.d/fedora-core.repo.rpmsave

このままではfedora-updates.repoは古いままなのでリネーム
cd /etc/yum.repos.d/
mv fedora-updates.repo fedora-updates.repo.rpmsave
mv fedora-updates.repo.rpmnew fedora-updates.repo

アップグレードしてみる
yum clean all
yum upgrade

DAGのRPMでmemcached入れていたのでエラーが出た
Error: Missing Dependency: libevent-1.1a.so.1 is needed by package memcached

memcached削除してアップグレード
yum -y remove memcached
yum upgrade

アップグレード完了したのでmemcachedをインストールし直す。
cd /usr/src/redhat/SRPMS/
wget http://dag.wieers.com/rpm/packages/memcached/memcached-1.2.2-1.rf.src.rpm
rpmbuild --rebuild memcached-1.2.2-1.rf.src.rpm

リビルドでエラーが出る
error: Failed build dependencies:
        libevent-devel is needed by memcached-1.2.2-1.rf.i386

libevent-develをインストールして再度memcachedリビルド
yum -y install libevent-devel
rpmbuild --rebuild memcached-1.2.2-1.rf.src.rpm

途中でこんなメッセージが出てRPMができる
Wrote: /usr/src/redhat/RPMS/i386/memcached-1.2.2-1.rf.i386.rpm
Wrote: /usr/src/redhat/RPMS/i386/memcached-debuginfo-1.2.2-1.rf.i386.rpm

インストールする
cd /usr/src/redhat/RPMS/i386/
rpm -Uvh memcached-1.2.2-1.rf.i386.rpm memcached-debuginfo-1.2.2-1.rf.i386.rpm

memcachedスタートしてみる
/etc/init.d/memcached start

起動時オン
chkconfig --level 35 memcached on


21:13追記
-Perlのモジュールの依存関係がおかしくなったようで、CPANインストールでもエラー出まくり。
t/hoge...............Errno architecture (i386-linux-thread-multi-2.6.9-34.elsmp) does not match executable architecture (i386-linux-thread-multi-2.6.19-1.2895.fc6xen) at /usr/lib/perl5/site_perl/5.8.8/Errno.pm line 11.

-Cronにも怒られまくり。
Errno architecture (i386-linux-thread-multi-2.6.9-34.elsmp) does not match executable architecture (i386-linux-thread-multi-2.6.19-1.2895.fc6xen) at /usr/lib/perl5/site_perl/5.8.8/Errno.pm line 11.
Compilation failed in require at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/IO/Socket.pm line 17.
BEGIN failed--compilation aborted at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/IO/Socket.pm line 17.

locate Errno.pm すると二つあった
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/Errno.pm
/usr/lib/perl5/site_perl/5.8.8/Errno.pm

削除する
rm -f  /usr/lib/perl5/site_perl/5.8.8/Errno.pm

同じようなモジュールが多々あるようだ(Scalar::Util,Compress::Zlib,String::CRC32)。
各個撃破後やっとCatalystアプリケーションの入ったhttpdを起動できた。
・・・やっぱりアップグレードは嫌。先も考えると精神的にキツい。

2007-05-14 11:39:34

diff

[ Linux ]

汎用
diff -urN XXXX YYYY > AAA.txt

-u unified 出力形式
-r ディレクトリを再帰的に比較
-N 新しいファイルも認識

http://www.linux.or.jp/JM/html/gnumaniak/man1/diff.1.html

2007-04-21 12:15:14

bashやviのエラー音を消す

[ Linux ]

Fedora Core 6にて
vi /etc/inputrc

# do not bell on tab-completion
#set bell-style none

# do not bell on tab-completion
set bell-style none

vi /etc/vimrc
以下を追加
set visualbell

※KDEやGNOMEの場合
コンソールアプリケーション設定変更で対応
Konsoleの場合・・「設定」>「ベル」

2007-04-21 11:32:16

iptables -L が遅い

[ Linux ]

DNS逆引き表示するので遅くてイライラ
iptables -nL
で逆引きしない。
ex)http://www.linux.or.jp/JF/JFdocs/netfilter-faq-3.html

2007-04-17 17:06:11

Proxy経由のSSH

[ Linux ]

よく忘れる
以下、Fedora Core 6
vi /home/MyAccount/.ssh/config

Host www.yourhostname.com
HostName www.yourhostname.com
ProxyCommand /usr/bin/nc -X connect -x proxy.server.com:3128 %h %p
Compression yes
ServerAliveInterval 15

ServerAliveInterval が無いとうちの環境はサーバから切断される。
以前 Vine 使ったときは nc じゃなく connect.c (http://zippo.taiyo.co.jp/~gotoh/ssh/connect.html) 使った。

2007-02-28 14:56:24

Image::Magickインストール3

[ Perl ] [ Linux ]

二度目は2007年2月27日で自前サーバ。
Perlのバージョンは、少し前から5.8.8を入れて使っていた。
use Image::Magick する必要のあるアプリケーションをつくってテストすると Image::Magickが無いとエラーが出る。まる一日ハマった。

yumで既存RPM削除
yum remove ImageMagick-perl ImageMagick-devel ImageMagick

ソースインストールする。
wget ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/ImageMagick-6.3.2-9.tar.gz
tar zxvf ImageMagick-6.3.2-9.tar.gz
cd ImageMagick-6.3.2
./configure
make
make install

コマンド
convert aaa.gif bbb.jpg が動作することを確認する

ライブラリのパスを通す
/sbin/ldconfig /usr/local/lib
とか
echo /usr/local/lib >> /etc/ld.so.conf
ldconfig
とか

PerlMagickインストール
cd PerlMagick/
perl Makefile.PL
make
make test
make install

ImageMagickは動作するのに、PerlMagickが動作しない場合
http://cachu.xrea.jp/perl/GetPicSize.html
http://cachu.xrea.jp/perl/ImgResize.html
上記URLを参考にアプリケーション側を変更してもよし。
実際PerlMagickで悩んでいるとき一時的に使って対応した。

2007-02-28 14:55:21

Image::Magickインストール2

[ Perl ] [ Linux ]

CentOS4でも二度ハマった。

一度目は2006年9月でレンタルサーバ。
6.2.5  →  6.2.9と管理会社にアップデートされたのだが use Image::Magick でセグメンテーションエラーが発生するようになりバージョンを戻してもらった。公開サービス上での事だったので心臓に悪かった。

2007-02-28 13:02:14

Image::Magickインストール1

[ Perl ] [ Linux ]

これはよくハマる。

2006年8月にFedora5で、yumでアップデートしたら
use Image::Magick してるアプリケーションが動かなくなった。
セグメンテーション違反だったような・・。
以下のように対応したメモが残っていた。

Fedora ImageMagick(ImageMagick-6.2.5.4-4.2.1.fc5.4)

yum で update
ImageMagick-6.2.5.4-4.2.1.fc5.4

yum で install
ImageMagick-devel-6.2.5.4-4.2.1.fc5.4
↑これがないとmake不能

cpan から install
Image::Magick

[注意]
ImageMagick-perl-6.2.5.4-4.2.1.fc5.4
↑使用禁止(動かない)

2007-01-05 18:03:31

環境変数のProxy

[ Linux ]

FedoraCore6の場合
vi /etc/profile.d/proxy.sh
------------------------------------------------------------------
export http_proxy=http://[proxy_server]:[port]/
export ftp_proxy=http://[proxy_server]:[port]/
export no_proxy=127.0.0.1,10.99.10.99,.domain.name
export HTTP_PROXY=http://[proxy_server]:[port]/
export FTP_PROXY=http://[proxy_server]:[port]/
------------------------------------------------------------------

vi /etc/profile.d/proxy.csh
------------------------------------------------------------------
setenv http_proxy http://[proxy_server]:[port]/
setenv ftp_proxy http://[proxy_server]:[port]/
setenv no_proxy 127.0.0.1,10.99.10.99,.domain.name
setenv HTTP_PROXY http://[proxy_server]:[port]/
setenv FTP_PROXY http://[proxy_server]:[port]/
------------------------------------------------------------------

・no_proxy は , 区切りで複数入力可能。
その際 , 前後にスペースを入れてはダメ。