centOS:CentOS:yumのCtrl+Cとyum-fastestmirror

知らなかったこと。
yumでパッケージをアップデートしようしていてパッケージが少しずつしか落ちてこないから、Ctrl+Cで中断しようとしたら勝手にミラーが替わって続きからダウンロードされた。
更新は異常ないみたいだけど、こんな機能あったんだ。

今回の更新でyum-fastestmirrorが入ったからもうこの機能を活用することはなさそうだけど。

今日はもう一台更新する必要があったので、そっちはちゃんと先にyum-fastestmirrorを入れた。少しだけ時間を得したはず。

# yum install yum-fastestmirror
# yum check-update
Loading "fastestmirror" plugin
・・・
# yum update

wordpress:カスタマイズメモ

1.editor-toolbarをいつものようにカスタマイズ
→quicktags.jsにボタン追加の処理

2.テーブルがゼブラになるようにheader.phpにjs追加

<script class="javascript" type="text/javascript">
// <!--

function stripe() {
    var con = document.getElementById('container');
    if (!con.getElementsByTagName('tr')) return;
    var tr = con.getElementsByTagName('tr');
    for (var i = 0; i < tr.length; i = i + 2) {
        tr&#91;i&#93;.setAttribute('class', 'odd');
    }
}
window.onload = stripe;
// -->
</script>

3.ソースのハイライト
iG:Syntax Hiliterプラグインをインストール
footer.phpにを記述しないと動かない。

4.CSS変更
面倒になったので後でする。

linux:/etc/rc.d/init.d/と/etc/init.d/

/etc/rc.d/init.d/は手動起動するデーモンのinitスクリプトを置くところ。SLES9*1では/etc/init.d/が手動起動するデーモンのinitスクリプトを置くところ。
RHEL4*2の/etc/init.d/は/etc/rc.d/init.d/ にシンボリックリンクしている。ので、どっちを使っても同じ。

/etc/rc.d/rc[0-6].d/はランレベルごとのデーモン起動スクリプトを配置するところ。
実際は手動起動するinitスクリプトにシンボリックリンクを設定する。

chkconfigまたはinsservコマンドでこのシンボリックリンクを作成できる。

chkconfig httpd on      #有効にする
chkconfig httpd off     #無効にする

insserv httpd           #有効にする
insserv -r httpd        #無効にする

各ランレベルに何のデーモンが登録されているかは下記のコマンドで確認できる。

 ls -l /etc/rc.d/rc3.d/

リンクファイル先頭のK[0-9]{2}やS[0-9]{2}は起動の順序を調整するためにある。

ランレベルは0~6まで。

ランレベル システム状態
0 システム停止
1 シングルユーザモード
2 ローカルマルチユーザモード(NFSなどはなし)
3 フルマルチユーザモード(テキストコンソール)
4 未使用
5 フルマルチユーザモード(グラフィカル環境)
6 システム再起動

通常はランレベル3か5を設定する。3と5の違いはCUIかGUIか。GUIを使用しないデーモンなら3で設定する。
但しランレベル3でも”startx”コマンドによりGUIを使用できるので、全部3で運用しても良い。むしろその方がシステムリソースが節約され安定するらしい。

ランレベル1はバックアップ等、ファイルの整合性を保ちたいときに使用する。

*1SLES9 … Novell SUSE LINUX Enterprise Server 9
*2RHEL4 … Red Hat Enterprise Linux 4

prototype.js:firefox3で”each is not a function”

こんなバッドノウハウを使うことは2度と無いだろうと思ってメモらなかったら、今日思い出せなくて苦しんだので、今度こそメモる。

firefox3で”each is not a function”のエラーが出るときは.getElementsByClassName()を調べること。
firefox3ではgetElementsByClassName()はネイティブ実装されている。そしてこの関数が返す型はfirefox2と3で異なる。

firefox2…HTMLElementのサブインターフェース
firefox3…HTMLCollection

なのでfirefox3ではelements.each(function(element))~みたいな命令がエラーになる。

対処方法は↓このへんがお手軽。
・elements.getElementsByClassName(“hoge”) を$A(“hoge”)に置き換える。
・elements.getElementsByClassName(“hoge”) をelements.select(“.hoge”)に置き換える。
・.eachを使わず、forやwhileで処理する

せっかく処理速度が速くなっているのでなるべくネイティブ実装のgetElementsByClassName()を使ったほうがいいはず。なのでエラーになるところだけ、上記のように書き換える。

.bashrcと.bash_profile

.bashrcはbashを起動する度に読み込まれる。/etc/bashrcを読み込む。
.bash_profileはログインしたときに読み込まれる。/etc/bash_profileを読み込む。ログインしたときは.bashrcも読み込む。

.bashrcに記述したものは再ログインしなくても、bashコマンドでbashを起動するだけで反映される。

.bash_profileの変更はは再ログインしたときに読み込まれる。

以上の違いから環境変数は.bash_profile、エイリアスは.bashrcに書くのが一般的らしい。

sourceコマンドで.bashrc、.bash_profileを再読込するならどっちでも同じなので
全部.bashrcに書いてもかまわない。

postfix:メールの保存形式と設定方法

postfixはメールをmbox、MailDir形式、cyrus形式で保存できる。デフォルトの設定ではmbox形式。

mbox、MailDirの違いはざっと↓。

mbox
全てのメールを1ファイルで保存する。
ファイルサイズは非常に大きくなる。サイズの大きくなったmboxにアクセスするとサーバ負荷は高くなる。
全てのメールが1ファイルで保存されているのでファイルが壊れたときの影響が大きい。また排他処理も同様の理由で不利である。

MailDir
ユーザディレクトリのMailDirフォルダ以下に1メールを1ファイルで保存する。
mbox形式の弱点が解消されるほか、MailDirフォルダに容量制限をかけることが出来る。
欠点はファイル増加によるパフォーマンス低下。

cyrus(よく解りません・・・)
ユーザディレクトリ以外の場所に1メールを1ファイルで保存する。
連携できるアプリが多いのが長所みたい。

設定方法
1.main.cfを編集してメールの保存方法を設定します。

/etc/postfix/main.cf
#home_mailbox = Mailbox
#home_mailbox = Maildir/
mbox形式ならMailbox、MailDir、cyrus形式ならMaildir/をコメントアウトする
※Maildir/は”/まで”必要!

2.postfixを再起動する
/etc/init.d/postfix restart

参考サイト: posyfixのぺーじ