駆け出しシステム管理初心者、わたしのsyslogです。
 こんなこともしらねーのかよ!ってこともゴリゴリ載せていきます。
 [DC] 大停電の夜に
 [DC] サーバ引越しって大変だよね
 [tool] TeraTermのログファイルを自動的に取得する
[-] スポンサーサイト

一定期間更新がないため広告を表示しています

| - | - | permalink | Posted by スポンサードリンク |
[apache] ユーザにWebファイルをキャッシュさせなくする
顧客からWebページを大幅更新するので、ある日時以降はユーザがブラウザのキャッシュをみないで新たにアクセスしにくるような設定をしてくれと依頼があった。

ブラウザでファイルをキャッシュされないようにする設定は、HTMLに直接記述したり、Perlで処理したりと方法は多種あるが、今回はWebサーバ(apache)での設定を利用した。

まず、キャッシュの管理にはapacheの mod_headers というモジュールが必要になるのでapacheをリコンパイルする。<apache_src>/src/Configration.tmpl の下記のコメントアウトを外してから、再インストールする。
AddModule modules/standard/mod_headers.o

次に httpd.conf に下記設定を追加する。ここでは全てのファイルに対して、 2006/10/15 23:59:59 までのキャッシュは有効であるという有効期間を設定している。
<Files *>
Header set Pragma no-cache
Header set Cache-Control no-cache
Header set Expires "Sun, 15 Oct 2006 23:59:59 GMT"
</Files>

これでapacheを再起動すればサーバ側設定は完了である。

次にブラウザで確認する。IEではまずインターネットオプションでインターネット一時ファイルを「ファイルの削除」で全て削除する。そしてWebページにアクセスした後、インターネットオプション→全般→インターネット一時ファイルの"設定"→ファイルの表示、でエクスプローラを表示させ、当該Webページの『有効期限日時』を確認する。それがhttpd.confで設定した日時とあっていれば成功である。

サーバ側での設定以外の方法は下記ページを参照↓
| comments(7) | trackbacks(140) | permalink | Posted by シカ |
[tomcat] Javaアプリが動かない
顧客からjavaのアプリが動いてない、と連絡を受けた。

とりあえずtomcatを再起動するも、問題は解決せず。psすると、tomcatのデーモンは稼動している。が、起動のユーザがtomcatユーザではなく一般ユーザになってしまっている。そこで起動スクリプトを確認するが、起動スクリプトでは確かにtomcatユーザにsuしてから catalina.sh run を行っている。それなのに何故一般ユーザで起動してしまうのか?

事前にやっていた作業を課員に確認すると、OSのユーザ追加を行っていたらしい。useradd コマンドではなく、直接 passwd ファイルを編集していたというので確認してみると、UserIDがtomcatユーザとかぶっていた。これによって起動してもこのユーザでデーモンが起動してしまっていたらしい。UserIDを変えて再起動すると、デーモンも通常通りに起動した。
# ps -ef | grep java
sika 24172 1 0 19:17:12 pts/1 0:36 /usr/java/bin/java -server …(略
root 24452 23879 0 19:29:08 pts/1 0:00 grep java
# /etc/init.d/tomcat stop
Sun Microsystems Inc. SunOS 5.9 Generic May 2002
Using CATALINA_BASE: /usr/local/jakarta-tomcat-5.0.28
Using CATALINA_HOME: /usr/local/jakarta-tomcat-5.0.28
Using CATALINA_TMPDIR: /usr/local/jakarta-tomcat-5.0.28/temp
Using JAVA_HOME: /usr/java
Stopping jakarta-tomcat
# /etc/init.d/tomcat start
Sun Microsystems Inc. SunOS 5.9 Generic May 2002
Startting jakarta-tomcat
出力を nohup.out へ送信中です。
# ps -ef | grep java
tomcat 24477 1 0 19:29:29 pts/1 0:45 /usr/java/bin/java -server …(略
root 24535 23879 0 19:32:11 pts/1 0:00 grep java
| comments(0) | trackbacks(9) | permalink | Posted by シカ |
[web] UTF-8
今度新しく立ち上げるWebサイトは、製作会社の意向で文字コードを UTF-8 に統一するらしい。うちは今まで全部 EUC-JP でやってたので、今後はapacheのCharsetをちょろちょろいじらなくちゃいけないっぽくてめんどいなぁ。

でも調べてみると、XMLの標準文字コードはUTFだし、最近はWWWで使われることも多いらしいのでしょうがないか。ってかプロトコルそのものをUTFにしてしまうような動きもでてきているらしいね。まぁ国際化対応って意味ではその方が便利ってことか。

いやー、よくわからんけどいわゆるひとつの Web2.0 だね。…って言ってはみたものの、この言葉の定義ってモヤモヤしてていまいちよくわからん。まぁ一般に言われてる意味は理解してるものの、「Web2.0系企業」とかいわれるとナンダソレ?って思う。大したことはしてねーんじゃーねーのー?って疑ってかかるのはうらやましいからなんだろうけど。
| comments(0) | trackbacks(0) | permalink | Posted by シカ |
[apache] mod_ssl のデーモン
# ps -ef | grep httpd
www 18743 1 0 12:45:43 ? 0:06 /usr/local/apache/bin/httpd -DSSL
apache-ssl のデーモンは httpsd だが、mod_ssl のデーモンは上のようにでる。-DSSL がhttpsの証である。
| comments(0) | trackbacks(0) | permalink | Posted by シカ |
[PostgreSQL] postmasterデーモンが起動しない
PostgreSQL7.3.15 にて、postgres.conf の
max_connections = 40

をコメントアウトしてpg_ctl startすると、表示上は起動成功とでるが、実際にはpostmasterデーモンが起動しなかった。そういう仕様?なの?っていうメモ。
| comments(0) | trackbacks(0) | permalink | Posted by シカ |
[Network] FTPがつながらない
FTPサーバにつなげるようにして!って顧客に言われて作業中。

OSアカウント作って、inetd.confでスーパーサーバから起動して、tcp_wrapperでアクセス可(hosts.allow)にもした。でも繋がらない。

原因の一つはFTPの設定ファイル(/etc/ftpd/*)で、アクセス可能にしなきゃいけなかった。いろいろ許可設定はできるようだが、今回は ftphosts で設定した。
# vi /etc/ftpd/ftphosts
allow <アカウント名> <IPアドレス>
ちなみにこれをやってもどうしても駄目で、ずっぅっとサーバいじってても繋がらなかった。ふぅっと思ってネットワーク図を眺めてたら気づいた。ロードバランサでIPとポート振ってなかったことを…。

やっぱ駄目なときは落ち着くに限るね。ビー・クールだわ。
| comments(0) | trackbacks(0) | permalink | Posted by シカ |
[PostgreSQL] アクセス制限 / ログ起動オプション
先日「バージョンアップ時のデータベース移行」というエントリを書いたが、バージョンアップ直後にプログラムからDBに接続ができなくなってあせったことがあった。 localhost から psql をすると普通に繋がるのにwhy何故に!?とあせった。

原因は PostgreSQL の設定ファイル。データの移管が必要なバージョンアップ時には PG_DATA ディレクトリをまんま消してしまっていたので、設定ファイルも前のものは消えて新しいものになってしまっていた。以下のファイルの設定を見直して、解決。

<PG_DATA>/
pg_hba.conf // アクセス制限
postmaster.opts // ついでに起動オプションを確認

また、そんときはログも吐かれていなかった。ログを吐く起動オプションは以下。
$ <PG_HOME>/bin/pg_ctl start -l ¥
/var/log/pgsql/log.`/bin/date +%Y.%m.%d-%H.%M.%S` ¥
-D <PG_DATA> -o -i
| comments(0) | trackbacks(3) | permalink | Posted by シカ |
[Solaris] cr: Command not found
$ make

make[1]: cr: Command not found
make[1]: *** ...
makeを行っていると、↑のようなエラーメッセージに出くわすことがある。しかし which してみても find してみても cr というコマンドは見つからない。

こういう場合は cr ではなく、/usr/ccs/bin/ar というコマンドが必要らしいので、PATHに /usr/ccs/bin を加えて、configure からやり直すとうまくいく。

大体は、だけど。駄目でも文句いわないでください。
| comments(0) | trackbacks(1) | permalink | Posted by シカ |
[Solaris] パッチ
Recommended Patch など、インストールされたパッチの置き場は

/var/sadm/patch

find . -name などでインストールの有無を調べる。
| comments(0) | trackbacks(0) | permalink | Posted by シカ |
[PostgreSQL] バージョンアップ時のデータベース移行
7系から8系へとバージョンアップを行った。普通にダンプ&リストアをするとデータが合わないといわれて移行ができない。なので、ダンプファイル作成時のオプションに"-D"を付与する。これはCOPY文からINSERT文に変更するオプションになり、移行が可能となる。
// バージョンアップ前にDBをダンプしておく
# pg_dump -D test_db test.dump

// PostgreSQL7⇒8 バージョンアップ後…
# createuser test_user1
# createuser test_user2
# createdb -O test_user1 -E EUC_JP test_db
# psql test_db
test_db=> ALTER USER test_user2 WITH PASSWORD '*******';

// リストア
# psql -d test_db -f test_db.dump
↑では、移行時に2ユーザを移行対象DB(test_db)に関連つけている。

また、今回のようなケースは7⇒8などのメジャーバージョンアップ以外でも発生することがある。例えば7.2系以前のPGは、数値型フィールドに対してNULL文字列の代入が可能だが、7.3系以降は数値型フィールドへのNULL文字列の代入がエラーになるということがある。
尚、この移行も今回のダンプオプション"-D"で解決することができる。
| comments(0) | trackbacks(0) | permalink | Posted by シカ |