月別アーカイブ: 12月 2011

mailコマンドのFromを設定する – from mail submit.cf

さくらVPS(CentOS i386)でデフォルト状態のmailコマンドでメールを送信すると、Fromがuser@ホスト名になる。
しかし、Fromをuser@ドメインにしたいという事がある。
コマンドオプションでFromを指定することも出来るけど、毎回指定するのも面倒なので設定を書き換える。

設定ファイルは /etc/sendmail/submit.cf である。
SMasqSMTPと言う部分で定義してあり、標準では

R$+                    $@ $1 < @ *LOCAL* >             add local qualification

のように記述されている部分。
*LOCAL*の部分がローカルホストに書き換えられる仕組みなので、手っ取り早く設定するなら

R$+                    $@ $1 < @ xn--ockc3f5a.com >             add local qualification

のように書き換えると、mailコマンドにオプション無しで送信すると、userあっとまーくxn--ockc3f5a.comのようになる。

(599)


カテゴリー: LAMP[Linux, Apache, MySQL, PHP] | コメントをどうぞ

バリュードメインでサブドメインのメール設定したが上手く動かなかった – 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で即値指定する場合は、最後に.を付けるのが作法)

(621)


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

yumでパッケージ名がわからない時に欲しいファイル名から探す – yum whatprovides

 Linuxを使っていて、プログラムを起動しようとしたとき

cannot open libhoge.so.3

 とか言われて起動できないことがある。
 共有ライブラリが入っていないから起動できないよと言うエラーであるが、このライブラリが libhoge パッケージに入っているなら

yum install libhoge

 で済むわけだけど、全然違う piyo.noarch とかに入っていると名前から推測できない。
 そんなとき、パッケージが提供してくれるファイル名を探すコマンドがある。

yum whatprovides */libhoge.so.3

 みたいに、whatprovidesと言うコマンドである。
 ワイルドカードで

yum whatprovides */libhoge.*

 みたいな検索も出来る。
 全てyumで管理していると、通常は依存パッケージを自動で入れてくれるけど、パッケージが無くてソースビルドしようとするとライブラリ無いよメッセージは良く発生するので覚えておくと便利だろう。

(249)


カテゴリー: LAMP[Linux, Apache, MySQL, PHP] | コメントをどうぞ

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で毎分回しておくと、サイト不具合を検知しやすいだろう。

(285)


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

通常のファイルインプットタグを隠して違うボタンを表示する – html / css

通常のファイルインプットタグは

<input type=’file’ id=’file_up’ enctype=’multipart/form-data’>

こんな感じ。

jQueryを使って、ファイル選択時にアップロードさせようとすると、

$(“#file_up”).change(function(){
$(this).upload(
‘/upload’,
‘type=image’,
function (res) {
$(“#preview”).html(“<IMG SRC=’kotei.jpg’>”);
},
‘text’
);
});

みたいに、ボタンのチェンジイベント(選択ファイル名が変化)にバインドして、jQueryのUpload機能でアップするようにするんだけど、ファイル選択とファイル名の表示は、即時アップにはあまりイメージが合わない。
なので、このタグを消して、別のボタンでキックしたい。

<input type=’button’ id=’file_up_btn’ onclick=’document.genElementById(‘file_up’).click();’ value=’アップロード’>

みたいなボタンを作って、こっちのボタンが押されたら、ターゲットのInputタグをキックするという動作をさせる。
aタグで

<a href=’javascript:void();’ onclick=’document.genElementById(‘file_up’).click();”><img src=’button.jpg’></a>

イメージをセット
みたいにすると、画像ボタンを利用することも出来る。

で、本体のタグ表示が邪魔なので消したいんだけど、style=’display:none;’にすると、ボタンを押してもファイル選択ウィンドウが表示されなくなってしまう。
で、常套手段のstyle=’text-indent:-9999px;’にして画面外部に飛ばそうとすると、Chromeでファイル選択ボタンだけ飛んでいって、ファイル名欄が残る上に、本来ボタンがある空白をクリックするとファイル選択が開いてしまう。
じゃあ、どうしようと思ったら、divにstyle=’text-indent:-9999px;’をつけてサンドイッチしてやると隠すことが出来た。 でも、微妙なスペースは残るけど、まぁ、このぐらいで妥協しておこう。

(633)


カテゴリー: jQuery | コメントをどうぞ

nfsデーモンが動かない – OpenVZの仕様 nfsd smbd 繋がらない

 ServersMan@VPS
の仮想化に使われているOpenVZの仕様で、子OSではnfsdやsmbd(NFS, SAMBAのサーバ)が動作しない。
 こればっかりはシステムの仕様なのでどうしようもない。
 共有ディレクトリを作っておいてrsyncとかwgetとかで複製しあうとか、クライアントにはなれるので、別の専用サーバとかVPSに繋いで共有するしかない。

(128)


カテゴリー: LAMP[Linux, Apache, MySQL, PHP] | コメントをどうぞ

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の設定には注意しよう。

(190)


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