カテゴリー別アーカイブ: サーバ設定

バリュードメインでサブドメインのメール設定したが上手く動かなかった – value-domain サブドメイン dns mx 設定

value-domainでサブドメインのmx(受信サーバ)を設定する場合、説明に従っても動作しなかった。
解説通りであれば、hoge.piyoドメインのサーバで

mx mailhost 10 subdomain

みたいに設定をすれば、user@subdomain.hoge.piyoのMXがmailhost.hoge.piyoになるハズなんだけど動作せず。
この設定をした状態で、

nslookup -type=mx subdomain.hoge.piyo

(subdomain.hoge.piyoのmxレコードをルックアップする)
の結果は

mx = mailhost.mx.subdomain.hoge.piyo

になってしまっていた。
単純に、aポイントでこの長いドメインを向けても良いんだけど、既にあるサーバ名に合わせたいので

mx mailhost.hoge.piyo. 10 subdomain

と言うように、他ドメイン向けとして説明されている、フルドメイン表記で設定すればOK。
ホストのアドレスの最後に.が付いているけど、これは必須(BINDで即値指定する場合は、最後に.を付けるのが作法)

(906)


カテゴリー: サーバ設定 | コメントをどうぞ

wgetを活用してサイトの生死確認を行う – wget サーバ管理

 以前紹介したwgetコマンドだけど、これがとても便利。
 通常のGET以外にPOSTでデータを送ることも出来る。

例えば、

WORDS=wget -q -O - --post-data 'loginid=hoge@piyo&password=hoo' http://hoge.piyo/login|grep ServersMan@VPSにログインありがとうございます|wc -w
if test $WORDS -gt 0; then
echo ‘HOGEサイトに正常にログインできました。’|mail -s “hoge-service health status[Good]” “ayu@hoge.piyo” — -f “system@hoge.piyo”
else
echo ‘HOGEサイトへのログインテストに失敗しました。
システムに不具合がある可能性があります。’|mail -s “***** hoge-service health status[Bad] *****” “ayu@hoge.piyo” — -f “system@hoge.piyo”
fi

みたいなシェルを作ってcronで回しておく。
 -Oオプションは取得した内容を標準出力する。 –post-dataで、この場合ログインID&パスワードを送信した結果に、特徴文字列(ServersMan@VPSにログインありがとうございます)をgrepで探して、wc -wコマンドで該当文字列の単語数をカウントした結果をWORDS変数に入れている。
 で、if test $WORDS -gt 0(greater than 0=0より大きい)が成立すれば、Goodのメールを送信し、成立しなければBadステータスのメールを送信する。
 Goodの送信をナシにして、Bad時にケータイに送信するような感じにしてcronで毎分回しておくと、サイト不具合を検知しやすいだろう。

(399)


カテゴリー: サーバ設定 | コメントをどうぞ

yumで入れたtomcat5のlogrotate – logrotate yumパッケージのバグ

 yumでtomcat5を導入すると、logrotate.dにtomcat5っていう設定ファイルが出来ている。
 しかし、これがお馬鹿で仕方ない。
一行目
/var/log/tomcat5/* {
logrotateは、このパスに一致するファイルをローテーションする。
 通常は、ファイルAに対して、ファイルA.1.gz、ファイルA.2.gzみたいに世代バックアップが出来ていくのだけど、2回目にlogrotateを回したときにはファイルA.1.gzに対してローテートが働いて、ファイルA.1.gz.1.gzが発生してしまって、以下ループ。 1.gz.1.gz.1.gz.1.gz.1.gz・・・とゴミファイルが沸き続ける。
 ぐっちゃぐちゃになってしまうので、logrotateの設定には注意しよう。

(238)


カテゴリー: サーバ設定 | コメントをどうぞ

cronが動かない ー cron run-parts namespace

 cron.dailyとか、cron.hourly と言ったディレクトリがetcの下にあって、日次や毎時バッチ置き場になっているんだけど、実は自動実行されるファイルの名前にネームスペース制限がある。
 正確に言えば、cron.???lyのディレクトリは、crontabでrun-partsで実行している。
 なので、ネームスペース制限も正確にはrun-partsの制限で、debianだと英数のみ、Serversman@VPSのベースのCentOSはRHELのクローンなので、一部の記号で終了するファイルだけ禁止。
 debianだとhoge.shやpiyo-batchは違反するので実行されない。
 通常のcron設定ファイルはr属性が付いていればいいけど、このディレクトリに置く場合はx属性が必要なのも忘れてはいけない。
ささいな話だけど、一応メモ。

(468)


カテゴリー: サーバ設定 | コメントをどうぞ

Webサイトのドメインを移動する – mod_rewrite

SEO的目的であるとか、欲しかったのが取れたとか言う理由でWebのドメインを移動することがある。
しかし、単純に移動させてしまうと、それまで使っていたリンクであるとか、サーチエンジンの順位であるとかでマイナスが発生してしまう。
そんなときに便利なのがApacheのmod_rewriteである。
.htaccessファイルで

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(blog\.hogehoge\.piyo)(:80)? [NC]
RewriteRule ^(.*)$ http://serversmanvps.xn--ockc3f5a.com/$1 [R=301,L]
</IfModule>

 みたいに、旧サイトに設置しておくと、http://blog.hogehoge.piyoに来たリクエストをHTTP応答コード301(恒久的移動)を添えてhttp://serversmanvps.xn--ockc3f5a.com/に飛ばしてくれる。
 Ruleの(.*)(全部引っかかる正規表現)とアドレスの最後にある$1(最初にヒットした部分をくっつける)によって、旧サイトの/page/2とかの部分をコピーしてくっつけられるので、従来のリンクはそのまま新サイトへのリンクとして扱われる。
 301コードを掲示しておくと、検索エンジンが移動したことを認識してくれるので、そういった部分のマイナスが押さえられる。

WordPressサイトの.htaccessには
# BEGIN WordPress
# END WordPress
でくくられた部分にmod_rewriteの設定があるが、この範囲はWordpressの設定を変えると書き換えられてしまうので、このコメントの外に書き足す。

(435)


カテゴリー: サーバ設定 | コメントをどうぞ

古いファイルを自動削除する – tmpwatch

 作業の一時ディレクトリであるとか、バックアップデータであるとかで一定以上古くなったファイルを削除したいと言う事が良くある。
 そんなときに便利なのがtmpwatchと言うコマンド。
tmpwatch -m 720 /var/www/upload/tmp
 みたいな感じで使う。

 この場合、-mはmodifiedタイム(最終変更時間)について指定して、720時間(30日)経過した/var/www/upload/tmp以下のファイル・ディレクトリを削除すると言う指定。
 シェルでfindしてrmするみたいな事を書けば同じ事が出来るけど、こっちの方が手っ取り早い。

 デフォルトのServersMan@VPSだと、cron.dailyにtmpwatchと言うスクリプトが放り込んであって、日次で回っているので、日単位の処理ならここに追記しても良いだろう。 時単位で削除したい場合はcron.hourlyに放り込もう。

(523)


カテゴリー: サーバ設定 | コメントをどうぞ

ネットワーク経由でファイルを取得して連動に利用する – wget

LinuxコマンドラインでHTTPやFTPのファイルを取得するコマンドにwgetがある。
このコマンドはオプションが豊富で、連動シェルスクリプトを書く場合にも便利に使える。

例えば、私のシステムではこんなスクリプトを毎日走らせている。

TODAY=date '+%Y%m%d'
SITENUM=001
wget -q -r -np -nd –accept=”*$TODAY*.csv” http://hosts-$SITENUM.xn--ockc3f5a.com/export/

1行目はTODAYと言う変数にdateコマンドでYYYYMMDD形式の日付を代入している。
2行目は同様にサイト番号。
で、3行目が本題のwgetで、-qは標準出力にメッセージを出さない(quiet)指定(cronで走らせると、標準出力にメッセージがあればメールで送信するので、黙らせている)
-rは、ページのリンク先をたどる設定。 exportディレクトリはIP制限の上でIndexesを有効にしているので、export/を表示すると直下のファイルリストが表示されるので、このファイルを取得する為の設定。
-npは、指定したディレクトリよりも上位を取得しない設定。 Indexesで表示すると、上位ディレクトリへのリンクが現れるためこれで制限している。
-ndは、ディレクトリを作らない設定。 通常、wget -rはホストの構造と同じ形にディレクトリを作るが、ファイルを作業ディレクトリに全て落としたいのでこの設定を入れている。
–acceptは受け入れるアドレスの形式で、この場合当日の日付が含まれるcsvファイルを受け取るという指定をしている。
最後に取得するアドレスを指定している。

 サイト内のリンクを辿ってくれるので、キャッシュシステムを使っているサイトで、cronで

cd /tmp
rm /tmp/site-cache/*
wget -r -q http://wp.xn--ockc3f5a.com/
rm -rf wp.xn--ockc3f5a.com

みたいなのを組んでおくと、1時間経過したキャッシュデータを削除して、サイトを巡ってキャッシュを生成させたりするのにも使える。

HTTPの認証にも対応しているので、お手軽にサイト間でデータ転送をさせたい場合に便利なコマンドだ。

(169)


カテゴリー: サーバ設定 | コメントをどうぞ