チラシの裏

2010 年 7 月 7 日

自宅サーバがぼっこわれた・・・?

カテゴリー: Linux — root @ 6:58 PM

あるチェックようのプログラムを使用したら、突然、ディスクI/Oエラーが・・・・
/ 以下に新規ファイルを作成できなくなるし・・・・・

一体、この症状は何なんだろう、と思って、マウント状況を調べてみたら
[root@s1 root]# cat /proc/mounts
rootfs / rootfs rw 0 0
/proc /proc proc rw 0 0
/dev/root / ext3 ro,data=ordered 0 0  ← なぜか リードオンリーに!!
/proc /proc proc rw 0 0

工工エエエエ(´Д`)エエエエ工工

なんでそうなるの・・・・・・

/ だからremountも出来ないし、マンドクセからリブートすることにした。
が、
rm: cannot remove ‘/ .auto-fsck’ : Read-Only file-system
と表示されてリブートできない・・・・

もう、しょうがないから電源を引っこ抜いて強制リブートすることに。
当然、リブートの途中でエラーが出て止まってしまった。
rootのパスワードを求められたので入力したら、とりあえずログイン
だけは出来るようになった。

本当はいけないんだけど、/をumountせずに fsck -y / としたら
無事に復旧しましたとさ。

めでたし めでたし。

2010 年 7 月 3 日

CentOS5.5でPHP5.3を使う

カテゴリー: Linux, PHP — root @ 4:13 PM

●まず、epel、remiのリポジトリを追加
$ wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
$ wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
# rpm -Uvh remi-release-5.rpm epel-release-5-3.noarch.rpm

●PHP5.3のインストール
# yum remove php* 念の為
# yum --enablerepo=epel install libedit
# yum --enablerepo=remi install php
# yum --enablerepo=remi install php-mbstring
# yum --enablerepo=epel install t1lib
# yum --enablerepo=remi install php-gd

# service httpd restart

これでOK

2010 年 1 月 26 日

はじめてのmemcache

カテゴリー: Linux, PHP — root @ 2:37 AM

自分が愛用しているWordPressはmemcacheというものを使うと
高速化できるらしい。
ということで、memcacheのインストールからPHPとの連携まで挑戦してみた。
(続きを読む…)

2009 年 8 月 1 日

phpMyAdminを入れたけど、「mcryptが無い」と怒られた

カテゴリー: Linux — root @ 5:20 AM

作業の効率化のため、phpMyAdminをインストールしてみたが、
「mcryptが無い」と怒られますた。

環境:Ubuntu 9.04 Server、PHP5

# aptitude install php5-mcrypt

# /etc/init.d/apache2 restart

これで警告が出なくなった。

2009 年 7 月 16 日

特定のパッケージだけ一括アップデートの対象から除外したい。

カテゴリー: Linux — root @ 2:48 AM

環境:Ubuntu 9.04 Server

●postfixを除外する(ホールドする)
# echo postfix hold | dpkg –set-selections

●ホールドの解除
# echo postfix install | dpkg –set-selections

●インストール済パッケージリスト
# dpkg -l

ii インストール済

hi hold and インストール済

rc 削除済

2009 年 6 月 27 日

FTP専用ユーザを作成したい

カテゴリー: Linux, ProFTPD — root @ 10:17 AM

●/etc/shellsに/sbin/nologinを追加する
# vi /etc/shells
/sbin/nologin

●ユーザ作成時に/sbin/nologinを割り当てる。
# useradd -s /sbin/nologin hoge

2009 年 6 月 26 日

locateが壊れた?

カテゴリー: Linux — root @ 5:30 AM

ウチのvineちゃんでlocateを使ったら妙なエラーがでるようになった。

decode_db(): read: Input/output error

ググっても全く引っかからないし・・・・・・
とりあえず、slocateの再インストールでもしてみるか。

# apt-get remove slocate

# apt-get install slocate

# updatedb

これで解決した。けど、原因が分からないのが気持ち悪いなぁ。

MyISAMのデータがご臨終した?

カテゴリー: Linux, MySQL — root @ 3:36 AM

突然、MySQLのテーブルのデータがselectできなくなった(‘A`) 。
もしかして、MyISAMのテーブルがぶっとんだのか?
グーグル先生でmyisamchkというものを発見したので使ってみた。

# myisamchk db/daily_report.MYI
Checking MyISAM file: db/daily_report.MYI
Data records: 69451 Deleted blocks: 0
myisamchk: warning: 2 clients are using or haven’t closed the table properly
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
- check record links
MyISAM-table ‘db/daily_report.MYI’ is usable but should be fixed

これは、データは残ってるけど読み出せない状態になっているという
ことなのかな・・・・・

とりあえず、壊れているテーブルをダンプしてリストアしたら
selectできるようになったが、解決方法としては良かったのかな・・・・。

2009 年 6 月 21 日

はじめてのSubversion

カテゴリー: Linux, Subversion — root @ 12:20 PM

Subversion(サブバージョン)の基本的な使い方をお勉強しました。

●まず、Subversionのインストール。
Redhat系なら
# yum install subversion

debian系なら
# apt-get install subversion

●リポジトリの作成
(/var/svnの中にkというリポジトリを作る場合
# mkdir -p /var/svn/k

# svnadmin --fs-type fsfs create /var/svn/k

●リポジトリにディレクトリを作成
# svn mkdir file:///var/svn/k/trunk -m “create”
# svn mkdir file:///var/svn/k/branches -m “create”
# svn mkdir file:///var/svn/k/tags -m “create”

trunk 開発を進めていくところ
branches ブランチ用
tags リリース用

●カレントディレクトリ内のk/をリポジトリにtrunkとしてインポート
# svn import k file:///var/svn/k/trunk -m “import”

●リポジトリの内容を表示
# svn list -v file:///var/svn/k

●リポジトリからファイルを取得
# svn checkout file:///var/svn/k/trunk k

●作業コピーとリポジトリの差分をチェック
# svn diff k

●リポジトリとリポジトリの比較
# svn diff -r 2:3 rules.txt

●作業コピーとリポジトリの比較
# svn diff -r 3 rules.txt

●リポジトリと同期させる
# svn update k

●リポジトリの更新履歴を表示
# svn log -v file:///var/svn/man/trunk

●trunkをRelease1.0としてtags内にコピー
# svn copy file:///var/svn/k/trunk file:///var/svn/k/tags/1.0 -m “Release 1.0″

●作業コピー内の変更をリポジトリ内に反映
# svn commit k -m “cmd.txtの編集”

●リポジトリにファイルを追加
# svn add hoge.c

●リポジトリにパスワード制限をかけたい場合は下記ファイルを修正する
(このパスワード制限はTortoiseSVN等でリポジトリにアクセスした場合に対して有効
/var/svn/k/conf/passwd
/var/svn/k/conf/svnserve.conf

http://tortoisesvn.tigris.org/

2009 年 6 月 6 日

プロセスの再起動に失敗する場合

カテゴリー: Linux — root @ 12:26 PM

サーバが高負荷状態の時はプロセスの再起動に失敗することがあります。
(たとえば service apache2 restart

このようなエラーは制御スクリプト内のstop()に失敗している時に起こります。
(そもそもstop()に失敗しているのにstart()しようとしている

このような事態に陥ってしまった時は、生き残っているプロセスを全てkillしてから
startさせれば大抵解決します。

●まず、生き残っているプロセスのIDを調べます。

# ps -ef | grep apache
root 5515 1 0 Jul03 ? 00:00:00 /usr/sbin/apache2
apache 13475 5515 0 04:02 ? 00:00:00 /usr/sbin/apache2
apache 13476 5515 0 04:02 ? 00:00:00 /usr/sbin/apache2
apache 13477 5515 0 04:02 ? 00:00:00 /usr/sbin/apache2
apache 13478 5515 0 04:02 ? 00:00:00 /usr/sbin/apache2
apache 13482 5515 0 04:02 ? 00:00:00 /usr/sbin/apache2
apache 13483 5515 0 04:02 ? 00:00:00 /usr/sbin/apache2
apache 13484 5515 0 04:02 ? 00:00:00 /usr/sbin/apache2
apache 13485 5515 0 04:02 ? 00:00:00 /usr/sbin/apache2

●killコマンドでプロセスを殺します。
(一番小さいプロセスIDをkillすると大抵は全部killできます。

# kill 5515

●もしくはkillallで一気に消すことも可能です。
(LinuxのkillallとSunOSのkillallは意味が違いますので注意してください。

# killall apache2

●生き残っているプロセスを全部殺せたらstartしましょう。

# service apache2 start

これでOK^^

●極稀に、こういう問題も起こるようです
[root@s1 root]# ipcs -s | grep apache
0×00000000 524288 apache 600 1
0×00000000 557057 apache 600 1
0×00000000 589826 apache 600 1
0×00000000 622595 apache 600 1
0×00000000 655364 apache 600 1
0×00000000 688133 apache 600 1

プロセスは死んでるはずなのに、ipcリソースだけ残ってる・・・・・

そういう場合は、 
# ipcrm sem 524288
という感じで残ってるリソースを全部削除してからstartすれば解決するはずです。
一個ずつ消すのがマンドクセという人はipcsの出力結果をawk等で
処理して一気に消せばいいでしょう。

例:
# ipcs -s | grep apache | awk ‘{print $2}’ | xargs ipcrm sem

古い投稿 »

Powered by WordPress