LinuxのOSの起動時にデーモンを自動で立てる方法。

[root@centos ~]# /etc/rc.d/init.d/httpd start ← httpd起動
httpd を起動中: [ OK ]
[root@centos ~]# chkconfig httpd on ← httpd自動起動設定

http://www.open.esys.tsukuba.ac.jp/wiki/?CentOS+%A5%B5%A1%BC%A5%D0%B9%BD%C3%DB%B5%AD%A1%A1by+yuto
ちなみに正体はランレベルごとにrc.dにシンボリックリンクをはってるらしい。

l2tp.org%chkconfig httpd on
failed to make symlink /etc/rc2.d/S85httpd: Permission denied
failed to make symlink /etc/rc3.d/S85httpd: Permission denied
failed to make symlink /etc/rc4.d/S85httpd: Permission denied
failed to make symlink /etc/rc5.d/S85httpd: Permission denied
l2tp.org%sudo chkconfig httpd on

ここに自動実行されるデーモンの起動スクリプトが格納されています。
「/etc/rc.d/rcランレベル.d」の形でフォルダに格納されていますので異なるランレベルの場合は読み替えてください。
ここに必要な起動スクリプトを格納します。
格納するスクリプトはデーモンの起動スクリプトが格納されている
「/etc/rc.d/init.d」フォルダの中のスクリプトのシンボリックリンクを置くようにします。
で、ファイルの命名規則ですが
1. S:スタートアップ時に起動するデーモン
K:シャットダウン時に終了させるデーモン
2. 優先順位
3. デーモン名
で命名します。
例えば「S55sshd」とすると
優先順位55番目でsshdを起動するということになります。

http://blog.veryposi.info/server/server-setup/centos-initd-rc/

wordpressで一般ユーザがアクセスするたびにwp_optionsが書き換えられてうざい件

アップデートしろの催促だかしらないけど、いちいちユーザがアクセスwp_optionsを書き換える。
これじゃ想像以上にupdate文が呼ばれてなんか腹立たしい。腹立たしい。

2 Query UPDATE wp_options SET option_value = ‘O:8:\”stdClass\”:3:{s:7:\”updates\”;a:1:{i:0;O:8:\”stdClass\”:5:{s:8:\”response\”;s:7:\”upgrade\”;s:3:\”url\”;s:30:\”http://wordpress.org/download/\”;s:7:\”package\”;s:40:\”http://wordpress.org/wordpress-2.8.4.zip\”;s:7:\”current\”;s:5:\”2.8.4\”;s:6:\”locale\”;s:5:\”en_US\”;}}s:12:\”last_checked\”;i:1255924346;s:15:\”version_checked\”;s:5:\”2.7.1\”;}’ WHERE option_name = ‘update_core’

変数を手動でオフにしたったろうとしたけど、これを無効にしてくれるプラグインが下。
http://lud.icro.us/disable-wordpress-core-update/
引用

概要
このプラグインはwp2.3以上でアップデートチェックを完璧に無効化します。wordpressの管理者画面にある早くアップデートしろよてめー(by matt)をなくします。最後よくわかりません。
Description
Completely disables the core update checking system in WordPress 2.3 and higher. It prevents WordPress from checking for updates, and prevents any notifications from being displayed in the admin area. Ideal for administrators of multiple WordPress installations.

でもどうしてそんなにけんか腰なの?
たいがいのひとはこれ(アップデート催促)をオフにするべきじゃないね!
わしだってこれはwpのステキな機能だとおもっとるもん。でも複数のwpをもってる管理者とかぶっちゃけアップデートしろしろっていわれるのうざいって思うでしょ。
このプラグインはそんな人たちのためどうのこうの
Why would I want to disable it?
Most people should not disable this feature. It’s a fantastic feature of WordPress and I’m fully in support of it. However, administrators who maintain multiple installations of WordPress on behalf of other people (eg. clients, friends) may not want update notifications to be shown to the users of these installations. This plugin is for them.

Squidのチョイ規模でかめで参考になりそうなconfとコメント

#squidの動作させるユーザ・グループ
cache_effective_user squid
cache_effective_group nogroup
#squidはcache_memの約3倍のメモリを使います
cache_mem 64 MB
#diskdはsquidと別スレッドでディスクに書込みします。複数cpuに最適値。最初の100は使用ディスク容量(MB単位)
cache_dir diskd /var/cache/squid 100 16 256
#半接続で落ちたクライアントをすぐに切る
half_closed_clients off
#再起動/終了時の待ち時間
shutdown_lifetime 3 seconds
#メモリに読み込むキャッシュオブジェクトの最大容量
maximum_object_size_in_memory 5 MB
#ステータスページのパスワードを無効にする(本番では要変更)
cachemgr_passwd none all
#エラーステータス(404など)のキャッシュ時間を小さく取る
negative_ttl 1 minutes
#リクエストのリダイレクト時のホストヘッダの書き換えを禁止
url_rewrite_host_header off
#キャッシュが他にないのでアナウンスしない
announce_period 0
#icpを禁止
icp_port 0
#メモリをつかんだら解放しないで取っておく
memory_pools on
#メモリは使えるだけ使う(専用サーバ用設定)
memory_pools_limit 0
#最大2本のパラレルでデータの送受信を行う
pipeline_prefetch on
#最小無効化時間を短めに取る
minimum_expiry_time 2 seconds
#パーシスタントコネクションの最長値を短めに取る
pconn_timeout 30 seconds
#全てのデータを2分間キャッシュする。ページのリロードが来てもキャッシュを返す。
refresh_pattern . 2 100% 2 ignore-reload
#アクセスログのフォーマット
logformat combined %>a %ui %un [%tl] “%rm %ru HTTP/%rv” %Hs %h” “%{User-Agent}>h” %Ss:%Sh
#アクセスログの位置と書式
access_log /var/log/squid/access.log combined
#apacheと似たようなログを吐く
#emulate_httpd_log on
#apacheサーバの場合にいいかげんなvary_encodingを許可する
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
#アクセスコントロールリスト(定義部)
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
#クライアントからの接続先。
#http(s)//192.168.100.15/…. もしくはhttp(s)//*.una.com/…. が該当。
#もっと明確にサーバを指定したいときは頭にドットを置かずに www.una.com とかする。
acl reverse dstdomain 192.168.100.15 .una.com
http_access allow reverse
#ステータスページ表示設定。localhostからのみ許可。
#squidclient -p82 -h 192.168.100.15 -l localhost mgr:config | less のようにして取得。
acl manager proto cache_object
http_access allow manager localhost
http_access deny manager
#############一つ目のサーバを指定#############
#IPアドレス 127.0.0.1
#アクセラレートするときは parent
#ポート 80
#ICPポート 0
# ICPリクエストしない
# disables requesting ICMP RTT database (NetDB) from the neighbor.
# NOT to request cache digests from this neighbor.
# parentをオリジナルサーバとみなす。アクセラレート設定。
# cache_peerに名前を付ける
# authをparentにパス
# 最大接続数を制限しておく
cache_peer 127.0.0.1 parent 80 0 no-query no-netdb-exchange no-digest originserver name=server_1 login=PASS max-conn=100
#一つ目のサーバ用のsquidの待ち受けポート
#IPアドレス 192.168.100.15
#ポート 80
# アクセラレートモード
# ネームベースヴァーチャルホスト用のヘッダをparentにパス
# セキュリティ上 全てのリバースプロキシ設定に別のurlgroupを振ります。
http_port 192.168.100.15:80 accel vhost urlgroup=1
#squidサーバのポート80をaclで定義
acl p80 myport 80
#squidサーバのポート80からの接続のみ1番目のサーバにリバースプロキシする
cache_peer_access server_1 allow p80
cache_peer_access server_1 deny all
#############一つ目のサーバここまで#############
#############ふたつ目のサーバを指定#############
cache_peer 127.0.0.1 parent 800 0 no-query no-netdb-exchange no-digest originserver name=server_2 login=PASS max-conn=100
http_port 192.168.100.15:81 accel vhost urlgroup=2
acl p81 myport 81
cache_peer_access server_2 allow p81
cache_peer_access server_2 deny all
#############三つ目のサーバをSSLで指定#############
cache_peer 127.0.0.1 parent 8043 0 no-query no-netdb-exchange no-digest originserver name=server_3 login=PASS max-conn=100
#SSLなので https_port。http_port と違うところは cert=/PATH/TO/cert.pem と key=/PATH/TO/key.pem あとcipher
https_port 192.168.100.15:443 cert=/usr/local/ssl/certs/cert.pem key=/usr/local/ssl/private/key.pem accel vhost urlgroup=3 cipher=ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP:-eNULL
acl p443 myport 443
cache_peer_access server_3 allow p443
cache_peer_access server_3 deny all
#############四つ目のサーバを指定#############
cache_peer www.yahoo.com parent 80 0 no-query no-netdb-exchange no-digest originserver name=server_4 login=PASS max-conn=100
http_port 192.168.100.15:82 accel vhost urlgroup=4
acl p82 myport 82
cache_peer_access server_4 allow p82
cache_peer_access server_4 deny all
#許可されてないサーバからの接続を全部お断りする
http_access deny all


http://wiki.livedoor.jp/unaz/d/squid%20conf%20reverse%20proxy

CentOSでMySQLのクエリログをとりたい

FreeBSDだと起動スクリプトのオプションはrc.confで与えてやるんだけど、CentOSだとよくわかんない。
起動スクリプトに直接書くような雰囲気もあるけど、そこにオプション群はない。
あったのはbasedirとdatadirだけ。
で、my.cnfに書けばいいようなのを発見。

 2.MySQL設定ファイル mysqld セクションに設定を記述します。
[mysqld]
log=myquery.log

http://a-programmer.blog.so-net.ne.jp/2007-09-15

Hosts File Managerが便利だけどvistaで使えなかった

開発環境の都合で内部のネットワークにいろんなサーバがあってそれを使い分けたい。
でもいちいちhostsファイルを開いてやるのが面倒。
というわけで発見したのが
Hosts File Manager
でもこれ、XPだとそのまま使えるのにvistaだと保存ができない。
(更新)ってでてて、保存ボタンを押しても保存されない。
vista必殺の管理者権限で実行してもダメ。
しょうがないからhostsファイルのパーミッションをいじる。

C:\Windows\System32\drivers\etc

にあるHOSTSファイルのセキュリティから、編集をクリックして、自分のユーザを追加。
フルコントロールにしてやっておk。

CentOS5.3でmysqlが立ち上がらない

エラーメッセージは起動スクリプトを実行したコンソールに

Manager of pid-file quit without updating fi

と出てくる。
ググったけどあまり良い結果は得られず。
そもそもこのメッセージ、起動スクリプトの/etc/rc.d/init.d/mysqlに入ってるもの。

# if manager isn’t running, then pid-file will never be updated
if test -n “$manager_pid”; then
if kill -0 “$manager_pid” 2>/dev/null; then
: # the manager still runs
else
# The manager may have exited between the last pid-file check and now. \
if test -n “$avoid_race_condition”; then
avoid_race_condition=””
continue # Check again.
fi
# there’s nothing that will affect the file.
log_failure_msg “Manager of pid-file quit without updating file.”
return 1 # not waiting any more.
fi
fi

なので環境依存とかでメッセージの内容が違うのかもしれない。だから見つからないのかな、と。
他の人ではユーザが違うのが原因だとか言ってたのでその線であたる。
mysqlがnologinになってたのでyp書き換えて無理やりログイン->mysqld_safeを手動で実行。するとちゃんと走ってる。
rootでmysqld_safeを実行、走ってる。
なんか様子が変だなぁと思い、ちょっと前に書き換えたmy.cnfをリポジトリから復元。
すると正常起動。
結局設定ファイルですか、って感じです。
hostname.errには何もエラーログが流れないので油断しました。
設定ファイルでひっかかったのは

max_allowed_packet = 1M
#max_allowed_packet = 1024M

の箇所。大きくしすぎるとだめなようです。
でも先に

innodb_buffer_pool_size = 2000M

を小さくしたのにこちらでは改善されず。
おそらく、max_allowed_packetの値*max_connectionsでメモリを確保しようとしてswapしまくりんぐ、swap足りねーってなって起動しなかったんではないかと予測。それならそうと/var/log/messagesにログが残っててもよさそうなんだけどそれは見当たらず。
mysqldが一人で困って周りに助けを求めんからいけん。
ログださんかったらなんもわからんわ!

光ファイバーケーブルのマップ

glasvegels.jpg
結構探すのに苦労しちゃう海底ケーブルとかの光ファイバー敷設の地図。
いつの時期かは不明だけど、そこまで古くはなさそう。
フランス人のお友達からゲット。
tpcとかぐらいしかしらね。日本の周りってぐるっとファイバーあった気がするけど見当たらない。
代わりに南米とかって意外に多くの陸揚げポイントあるんだなぁ、って。
内陸部を回すより海底通したほうがいいらしいね!