2006.04.27
named の init 作成
自宅サーバーには BIND9 を入れて内向けの DNS を立てている。
いちいち ISP の DNS にクエリー出してその戻りを参照しにいくのに
外側に出て行くのはパフォーマンス的にももったいない物がある。
その点、自宅に DNS を立てておけば LAN 内にあるサーバーへ
アクセスするので速度は速い。そして出したクエリーの結果は
暫くキャッシュされるので ISP の DNS まで行くこともなく、
Resolver は自前 DNS からの応答を引っ張って各ソフトが参照するだけ。
そんなアレで、インストールだけしていた BIND さんな訳だが、
サーバー再起動時に自動実行するようスクリプトを書いていなかった。
init スクリプトですな。
Linux だけど シェルは bash でなくて sh で書きました。
中身はとーーーてもきちゃないものだけど、ちゃんと動くので良しとする。
実はというか俺、シェル苦手です(苦笑
書いた init スクリプトでもはっ付けておくかなと。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | #!/bin/sh # # named init scripts # 2006/04/26 # Set variables. PID="/var/named/named.pid" BIN="/usr/local/sbin/named" USR="named" start() { printf "Starting BIND DNS System: " if [ -f ${PID} ]; then printf "Failedn" else ${BIN} -u ${USR} printf "Startn" fi } stop() { printf "Stopping BIND DNS System: " if [ -f ${PID} ]; then kill -TERM `cat ${PID}` printf "Stopn" [ -f ${PID} ] && rm -f ${PID} else printf "Not running BINDn" exit 1 fi } restart() { printf "Restarting BIND DNS System: " if [ -f ${PID} ]; then kill -HUP `cat ${PID}` printf "Restartedn" else printf "Not running BINDn" exit 1 fi } status() { if [ -f ${PID} ]; then printf "DNS System available.n" else printf "DNS System do not available.n" fi } # Main case "$1" in start) start ;; stop) stop ;; restart) restart ;; status) status ;; *) printf "Usage: $0 {start|stop|restart|status}n" exit 1 esac exit $? |



Comment & Trackback
Comment