技術者になりたい何か

技術者になりたい何かの覚書的な何かです

私的シェル芸入門

シェル芸的なものを書くことが多くなってきたのでいろいろまとめてみます。

■シェル芸とは

シェル芸の定義バージョン1.1

マウスも使わず、ソースコードも残さず、GUIツールを立ち上げる間もなく、あらゆる調査・計算・テキスト処理をCLI端末へのコマンド入力一撃で終わらすこと。あるいはそのときのコマンド入力のこと。

https://b.ueda.tech/?page=01434シェル芸 | 上田ブログ


※以降の記述はあくまで個人的なシェル芸的なものにたいするあれこれなので、厳密にはシェル芸の定義や考え方に反する記述が含まれているかもしれません。
 厳密なシェル芸?を学びたい方はなんか他で確認してください。

■シェル芸のための考え方(個人的)

・一個ずつポチポチやってく繰り返し作業がめんどい→それシェルでできない?
ex)1~100までのhostname,日付、連番のファイルを作成

$ for i in {1..100} ;do touch $(hostname)_$(date +_%Y%m%d)_$i.txt ;done

みたいな

Teratermのブロードキャストで一斉に時刻入りのディレクトリ作りたい。
けどあとでログ収集サーバとかに送るからホスト名とかで区別つけときたい

$ mkdir $(hostname)_$(date +_%Y%m%d%H%M)

・とあるディレクトリの中の一定時間経過したファイルを探して削除したい

$ find . -type f -mmin +10 | xargs rm -fv

■よく使うコマンドつなぎ方

・$(command) ()内のコマンドを展開する。上記例の中で$(hostname)は$ hostnameの結果をその場所に入れる。

$ echo $(hostname)
tmin_Arch
$ hostname
tmin_Arch

ファイル名に入れたいときとか、grepの検索ワードに使いたいときとかに重宝する。他にも多々。
基本的な動きは`command`と同じ。

・; 前のコマンド終了したら次のコマンドを実行する。

$ hostname; date
tmin_Arch
2018815日 水曜日 23:15:39 JST

ちなみにワンライナーでforとかwhileとかの繰り返しを使うときは、シェルで使うときの改行の代わりにこれを使ったりする。

$ for i in {1..100} ;do touch $(hostname)_$(date +_%Y%m%d)_$i.txt ;done

シェル的には

for i in {1..100} ; do
  touch $(hostname)_$(date +_%Y%m%d)_$i.txt
done

みたいな感じ。

・| 前のコマンドの結果を後ろに渡す。cat した結果を後ろに渡してgrepしてそれを後ろに渡してawkで整形したり、
findで探したファイルを| xargsで後ろに渡して後ろのコマンドの引数にしたりする。

■よく使うコマンド(※他にも多々あり)

cat ファイルの中身を見る。というか、ファイルの中身を標準出力に表示する。
grep 指定の検索文字に引っかかった行を表示する。ちなみに-Eで正規表現でor検索とか、-vで除外とか色々できる。
   fgrepとかegrep使えよって話もあるけどめんどいのであれ。
find 指定条件のファイル(or ディレクトリ)を探す。名前で絞ったり、時間で絞ったり色々できる。
xargs パイプと組み合わせて使うと、前のコマンド結果が複数のときにうまいこと後ろのコマンドの引数として渡してくれる。
awk 出力の整形、特にnカラム目を抜き出すのによく使う。
sed 出力の整形、特にある文字列を置き換えたり削除したりするのによく使う。
echo 文字列を標準出力に表示する。だけのはずだが変数食わせたりコマンド結果食わせたりすることもできる。
ls 指定ディレクトリの中身の一覧を出す。ls | grep hoge* とかしたのをxargsで渡してううんたらかんたら
tail 最後のn行の出力
head 最初のn行の出力

■マスターすると?

※メリット
・シェルっぽいことをシェル作らなくてもできる。のでシェルを残しにくい環境で一撃でなにかの処理を終わらせることができる。
・シェルっぽいことをしぇる作らなくてもできる。のでシェルスクリプト規約とかめんどくせーっていう環境で「これはコマンドです!!」と言い張ることができるかもしれない。
・ループ処理とか使うと同じようなコマンドを何十回と打って、みたいなケアレスミスが起きやすい状況を回避できるかもしれない。
・このコマンドの結果をここに代入して・・・の繰り返しみたいな手順を簡略化できるかもしれない。
・楽しい。なんかかっこいいかもしれない。
・達成感が得られるかもしれない。

※デメリット
・再現性に乏しいため、エビデンス残してないともっかい作るのがめんどい。
・複雑になってくると自分であとから読み返して解読に時間がかかるときが稀によくある。
・長くなってきたときにちゃんと検証しないと途中でなにか間違ってたときに想定外の動きをする可能性が増える。

やってみよー1

シェル芸の定義 – 上田ブログ

$ curl http://blog.ueda.asia/?page_id=1434 2> /dev/null | grep -A 1 h2 | tail -n 1 | sed 's;;;g' | tr -d '[:space:]' | awk '{print}'
マウスも使わず、ソースコードも残さず、GUIツールを立ち上げる間もなく、あらゆる調査・計算・テキスト処理をCLI端末へのコマンド入力一撃で終わらすこと。

curl先変わっててうまく動かないので、書き直してみたよ。

awkで整形したの

$ curl https://b.ueda.tech/?page=01434 2> /dev/null | grep -A 1 'id="1.1"' | tail -n 1 | awk -F '>' '{print $2}' | awk -F '<' '{print $1}'
マウスも使わず、ソースコードも残さず、GUIツールを立ち上げる間もなく、あらゆる調査・計算・テキスト処理をCLI端末へのコマンド入力一撃で終わらすこと。あるいはそのときのコマンド入力のこと。

sedで整形したの

$ curl https://b.ueda.tech/?page=01434 2> /dev/null | grep -A 1 'id="1.1"' | tail -n 1 | sed -e 's/<p>//' -e 's/<.p>//'
マウスも使わず、ソースコードも残さず、GUIツールを立ち上げる間もなく、あらゆる調査・計算・テキスト処理をCLI端末へのコマンド入力一撃で終わらすこと。あるいはそのときのコマンド入力のこと。

curlしたのをh2でgrepするともう一つ引っかかるものがあるため、id="1.1"でgrepして-A 1で後ろ一行。

$ curl https://b.ueda.tech/?page=01434 2> /dev/null | grep -A 1 'id="1.1"'
<h2 id="1.1">シェル芸の定義バージョン1.1</h2>
<p>マウスも使わず、ソースコードも残さず、GUIツールを立ち上げる間もなく、あらゆる調査・計算・テキスト処理をCLI端末へのコマンド入力一撃で終わらすこと。あるいはそのときのコマンド入力のこと。</p>

tail -n 1 で定義の方

タグで囲まれた部分を抽出。

$ curl https://b.ueda.tech/?page=01434 2> /dev/null | grep -A 1 'id="1.1"' | tail -n 1 |
<p>マウスも使わず、ソースコードも残さず、GUIツールを立ち上げる間もなく、あらゆる調査・計算・テキスト処理をCLI端末へのコマンド入力一撃で終わらすこと。あるいはそのときのコマンド入力のこと。</p>

あとは<p></p>をなんとか削除する。

awk版はawkで区切り文字を>指定して2カラム目を抜き出す&区切り文字<を指定して1カラム目を抜き出す。
sed版はsedで単純に<p>と</p>を一個ずつ削除。

正規表現自由自在マンならもうちょいエレガントにかけるかも。

やってみよー2
ディスクのパーティション情報一括取得ワンライナー
/dev/sd*で認識されてるsd*を抽出→while read LINEで出力をLINEに格納してループ開始。
→echoで$LINEを出力 ; partedにわたしてMB単位で情報出力。

# ls /dev/sd* | grep -v [0-9] | while read LINE ; do echo "******$LINE******" ; parted $LINE unit mib print ;done
******/dev/sda******
モデル: ATA WDC WDS120G1G0A- (scsi)
ディスク /dev/sda: 114473MiB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ: 

番号  開始       終了       サイズ     ファイルシステム  名前                          フラグ
 1    1.00MiB    451MiB     450MiB     ntfs              Basic data partition          hidden, diag
 2    451MiB     551MiB     100MiB     fat32             EFI system partition          boot, esp
 3    551MiB     567MiB     16.0MiB                      Microsoft reserved partition  msftres
 4    567MiB     113970MiB  113403MiB  ntfs              Basic data partition          msftdata
 5    113971MiB  114472MiB  501MiB     ntfs                                            hidden, diag

******/dev/sdb******
モデル: ATA WDC WD10EARS-00Y (scsi)
ディスク /dev/sdb: 953870MiB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ: 

番号  開始       終了       サイズ     タイプ    ファイルシステム  フラグ
 1    1.00MiB    100001MiB  100000MiB  primary   ext4              boot
 2    100001MiB  103801MiB  3800MiB    primary   linux-swap(v1)
 3    103801MiB  900993MiB  797192MiB  primary   ext4
 4    900993MiB  953869MiB  52876MiB   extended
 5    900994MiB  953803MiB  52809MiB   logical   ext4

******/dev/sdc******
モデル: ATA Hitachi HDS72101 (scsi)
ディスク /dev/sdc: 953870MiB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ: 

番号  開始       終了       サイズ     タイプ   ファイルシステム  フラグ
 1    0.03MiB    100006MiB  100006MiB  primary  ntfs              boot
 2    100006MiB  953869MiB  853863MiB  primary  ntfs

******/dev/sdd******
モデル: ATA ST3500320AS (scsi)
ディスク /dev/sdd: 476939MiB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ: 

番号  開始      終了       サイズ     ファイルシステム  名前              フラグ
 1    1.00MiB   513MiB     512MiB     fat32             EFI System        boot, esp
 2    513MiB    8705MiB    8192MiB    linux-swap(v1)    Linux swap
 3    8705MiB   59905MiB   51200MiB   btrfs             Linux filesystem
 4    59905MiB  476939MiB  417034MiB  btrfs             Linux filesystem

それではみなさん、よいbash lifeを!!

コンシューマーキーが凍結されたらしいmikutterでTwitterを使うために

■発端

GW最終日ですが、mikutter立ち上げたらエラーが出てました。

 

■衝撃(?)の事実

コンシューマーキーが凍結されていたらしい。

mikutter.hatenablog.com

作者のtoshi_a氏はすでにtwitter界から追放されているため、自分でなんとかする必要があります。

幸い上記記事内に今回のような事態を想定して、回避するためのTipsを用意してくれています。toshi_a氏神かよ。

 

■回避

mikutter.hatenablog.com

  1. dev.twitter.comで、開発者用CK/CSを得る
  2. mikutterを開き、設定画面の「アカウント情報」を開き、アカウントの登録をすべて削除して、mikutterを閉じる
  3. mikutterのソース入ったディレクトリの、 core/config.rb を開く
  4. 馬鹿になる
  5. 17行目と18行目の、 TWITTER_CONSUMER_KEYTWITTER_CONSUMER_SECRET の値を、1で得た値に書き換える
  6. 馬鹿を直す
  7. mikutterを起動し、2で登録解除したTwitterアカウントを登録し直す

 

とのこと。やってみましょうか。

僕は割と一般人なので普通に開発者ページの使い方がよくわかってませんでしたが。

参考にしたのはこの辺

 

docs.aws.amazon.com

bulletscizor.hatenablog.com

下記リンクからTwitterアカウントでログインして

https://dev.twitter.com/user/login

Authorize app」 をクリックして続行。

アプリケーションページ(https://dev.twitter.com/apps)から「Create a new application」

アプリ名「mikutter」はすでに使用されているので、適当に入れます。

ついでにアプリの説明の部分も適当に。

サイトはサイト持ってない人はtwitter.comとかで良いようです。

 

成功するとこんな感じでキーが取得できます。

f:id:t_min:20180506191552p:plain

 

 
 あとはmikutter blogで紹介されていたように、
 アカウント情報削除→mikutter/core/config.rb の17,18行目を書き換えればおk。
書き換えようとして上記ファイルを開くと、馬鹿にならないと書き換えられないことに気づくかもしれません。
 

f:id:t_min:20180506191956p:plain

 
 やったね!!
 

local用のDNSキャッシュサーバを立ててみる

LAN内用のDNSキャッシュサーバをBINDで立てます。

OSはDebian9、パッケージはbind9

aptで普通にインストール。
キャッシュサーバとして動かすだけなら設定は割と簡単かも。

■設定

・/etc/bind/named.conf

LAN内からの問い合わせを受付け、問い合わせ転送先はプロバイダのDNSサーバ。
ipv6は無効。

・/var/cache/bind/named.ca(ルートサーバ情報ファイル)

↓からDL。
ftp://ftp.internic.net/domain/named.cache

$ curl ftp://ftp.internic.net/domain/named.cache > named.ca
$ cat named.ca
$ sudo mv named.ca /var/cache/bind/named.ca

hintファイルはごくまれに更新があるらしいので、
定期的にチェックするかcronで最新取ってくるスクリプトを用意すると良いと思う。

更新は

$ dig @m.root-servers.net. ns > /var/cache/bind/named.ca

とか。(mじゃなくてもよい)

↓ではスクリプトでやってるようです。

network.station.ez-net.jp

・/var/cache/bind/local.zone (ローカル用zoneファイル)

・/var/cache/bind/local.rev (local逆引き用zoneファイル)


■起動てすと→起動

named-checkconfで設定ファイル指定して、構文に間違いがないかチェック。

$ sudo named-checkconf /etc/bind/named.conf

systemctl で起動

$ sudo systemctl start bind9

status確認。エラーが出てたらここのメッセージかjournalctl -xeの出力見ながら設定ファイルなおす。

$ sudo systemctl status bind9
● bind9.service - BIND Domain Name Server
Loaded: loaded (/lib/systemd/system/bind9.service; enabled; vendor preset: ena
Active: active (running) since Sun 2018-03-18 22:53:53 JST; 11s ago
Docs: man:named(8)
Process: 19689 ExecStop=/usr/sbin/rndc stop (code=exited, status=0/SUCCESS)
Main PID: 19695 (named)
CGroup: /system.slice/bind9.service
└─19695 /usr/sbin/named -f -u bind -4

3月 18 22:53:53 tminserver named[19695]: automatic empty zone: 1.0.0.0.0.0.0.0.0.
3月 18 22:53:53 tminserver named[19695]: automatic empty zone: D.F.IP6.ARPA
3月 18 22:53:53 tminserver named[19695]: automatic empty zone: 8.E.F.IP6.ARPA
3月 18 22:53:53 tminserver named[19695]: automatic empty zone: 9.E.F.IP6.ARPA
3月 18 22:53:53 tminserver named[19695]: automatic empty zone: A.E.F.IP6.ARPA
3月 18 22:53:53 tminserver named[19695]: automatic empty zone: B.E.F.IP6.ARPA
3月 18 22:53:53 tminserver named[19695]: automatic empty zone: 8.B.D.0.1.0.0.2.IP
3月 18 22:53:53 tminserver named[19695]: automatic empty zone: EMPTY.AS112.ARPA
3月 18 22:53:53 tminserver named[19695]: configuring command channel from '/etc/b
3月 18 22:53:53 tminserver named[19695]: command channel listening on 127.0.0.1#9

 

■動作確認

サーバ上からdigってみる

$ dig 8.8.8.8

; <<>> DiG 9.10.3-P4-Debian <<>> 8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 40476
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;8.8.8.8. IN A

;; AUTHORITY SECTION:
. 1406 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2018031800 1800 900 604800 86400

;; Query time: 160 msec
;; SERVER: 192.168.11.1#53(192.168.11.1)
;; WHEN: Sun Mar 18 22:57:37 JST 2018
;; MSG SIZE rcvd: 111

 

 

SERVERで自ホスト(DNSサーバホスト)のIPが出てればおk。
一回digったらキャッシュされるので次は早いはず。

$ dig 8.8.8.8

; <<>> DiG 9.10.3-P4-Debian <<>> 8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 60317
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;8.8.8.8. IN A

;; AUTHORITY SECTION:
. 1403 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2018031800 1800 900 604800 86400

;; Query time: 0 msec
;; SERVER: 192.168.11.1#53(192.168.11.1)
;; WHEN: Sun Mar 18 22:57:40 JST 2018
;; MSG SIZE rcvd: 111

 

速くなってますね。

■オープンリゾルバになってたりしないかチェック。

オープンリゾルバ確認サイト公開のお知らせ

$ wget -qO - http://www.openresolver.jp/cli/check.html

2つ結果が出るはずだけど、一つはプロバイダのDNS。両方OKならば大丈夫。


■LAN内のクライアントから動作確認。

@でサーバIP指定してdigってみる

$ dig @192.168.11.1 twitter.com

; <<>> DiG 9.9.5-9+deb8u15-Debian <<>> @192.168.11.1 twitter.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17526
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 27

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;twitter.com. IN A

;; ANSWER SECTION:
twitter.com. 1173 IN A 104.244.42.1

;; AUTHORITY SECTION:
com. 164279 IN NS j.gtld-servers.net.
com. 164279 IN NS h.gtld-servers.net.
com. 164279 IN NS g.gtld-servers.net.
com. 164279 IN NS c.gtld-servers.net.
com. 164279 IN NS m.gtld-servers.net.
com. 164279 IN NS a.gtld-servers.net.
com. 164279 IN NS e.gtld-servers.net.
com. 164279 IN NS l.gtld-servers.net.
com. 164279 IN NS i.gtld-servers.net.
com. 164279 IN NS k.gtld-servers.net.
com. 164279 IN NS d.gtld-servers.net.
com. 164279 IN NS b.gtld-servers.net.
com. 164279 IN NS f.gtld-servers.net.

;; ADDITIONAL SECTION:
a.gtld-servers.net. 164279 IN A 192.5.6.30
a.gtld-servers.net. 164279 IN AAAA 2001:503:a83e::2:30
b.gtld-servers.net. 164279 IN A 192.33.14.30
b.gtld-servers.net. 164279 IN AAAA 2001:503:231d::2:30
c.gtld-servers.net. 164279 IN A 192.26.92.30
c.gtld-servers.net. 164279 IN AAAA 2001:503:83eb::30
d.gtld-servers.net. 164279 IN A 192.31.80.30
d.gtld-servers.net. 164279 IN AAAA 2001:500:856e::30
e.gtld-servers.net. 164279 IN A 192.12.94.30
e.gtld-servers.net. 164279 IN AAAA 2001:502:1ca1::30
f.gtld-servers.net. 164279 IN A 192.35.51.30
f.gtld-servers.net. 164279 IN AAAA 2001:503:d414::30
g.gtld-servers.net. 164279 IN A 192.42.93.30
g.gtld-servers.net. 164279 IN AAAA 2001:503:eea3::30
h.gtld-servers.net. 164279 IN A 192.54.112.30
h.gtld-servers.net. 164279 IN AAAA 2001:502:8cc::30
i.gtld-servers.net. 164279 IN A 192.43.172.30
i.gtld-servers.net. 164279 IN AAAA 2001:503:39c1::30
j.gtld-servers.net. 164279 IN A 192.48.79.30
j.gtld-servers.net. 164279 IN AAAA 2001:502:7094::30
k.gtld-servers.net. 164279 IN A 192.52.178.30
k.gtld-servers.net. 164279 IN AAAA 2001:503:d2d::30
l.gtld-servers.net. 164279 IN A 192.41.162.30
l.gtld-servers.net. 164279 IN AAAA 2001:500:d937::30
m.gtld-servers.net. 164279 IN A 192.55.83.30
m.gtld-servers.net. 164279 IN AAAA 2001:501:b1f9::30

;; Query time: 4 msec
;; SERVER: 192.168.11.1#53(192.168.11.1)
;; WHEN: Wed Mar 21 21:14:30 JST 2018
;; MSG SIZE rcvd: 852

 

いけているようなら名前解決を最初にこのLAN内DNSサーバでするように設定。
Linux機ならresolv.confにサーバIPを追記、というかnameserverの一番上にDNSサーバの記述を加える。

/etc/resolv.conf

# Generated by resolvconf
domain tmin.net
nameserver 192.168.11.1 ←今回立てたDNSサーバ
nameserver XXX.XXX.XXX.XXX
nameserver XXX.XXX.XXX.XXX

一回目

$ dig hatena.ne.jp

; <<>> DiG 9.12.0 <<>> hatena.ne.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49201
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;hatena.ne.jp. IN A

;; ANSWER SECTION:
hatena.ne.jp. 600 IN A 59.106.194.19

;; AUTHORITY SECTION:
. 68186 IN NS b.root-servers.net.
. 68186 IN NS l.root-servers.net.
. 68186 IN NS i.root-servers.net.
. 68186 IN NS d.root-servers.net.
. 68186 IN NS e.root-servers.net.
. 68186 IN NS k.root-servers.net.
. 68186 IN NS m.root-servers.net.
. 68186 IN NS c.root-servers.net.
. 68186 IN NS h.root-servers.net.
. 68186 IN NS a.root-servers.net.
. 68186 IN NS g.root-servers.net.
. 68186 IN NS f.root-servers.net.
. 68186 IN NS j.root-servers.net.

;; Query time: 27 msec
;; SERVER: 192.168.11.1#53(192.168.11.1)
;; WHEN: 水 3月 21 18:28:15 JST 2018
;; MSG SIZE rcvd: 268

 

2回目

$ dig hatena.ne.jp

; <<>> DiG 9.12.0 <<>> hatena.ne.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9592
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;hatena.ne.jp. IN A

;; ANSWER SECTION:
hatena.ne.jp. 598 IN A 59.106.194.19

;; AUTHORITY SECTION:
. 68184 IN NS b.root-servers.net.
. 68184 IN NS d.root-servers.net.
. 68184 IN NS l.root-servers.net.
. 68184 IN NS e.root-servers.net.
. 68184 IN NS i.root-servers.net.
. 68184 IN NS a.root-servers.net.
. 68184 IN NS m.root-servers.net.
. 68184 IN NS h.root-servers.net.
. 68184 IN NS j.root-servers.net.
. 68184 IN NS f.root-servers.net.
. 68184 IN NS c.root-servers.net.
. 68184 IN NS g.root-servers.net.
. 68184 IN NS k.root-servers.net.

;; Query time: 1 msec
;; SERVER: 192.168.11.1#53(192.168.11.1)
;; WHEN: 水 3月 21 18:28:17 JST 2018
;; MSG SIZE rcvd: 268

 2回めのほうが速くなってればキャッシュされたのをちゃんと使っている。

 

■キャッシュを消したいときとか

rndcコマンドでおk。

$ sudo rndc flush

オプションは下記のようだけど、systemctl使ったらreloadもrestartもstopもできるからなぁ。

rndcでnamedをコントロールする - maruko2 Note.

 

reload named.conf と ゾーン情報をリロードする。シリアル番号が増えているゾーン情報のみリロードする。
reload zone [class [view]] ゾーンを指定しゾーン情報をリロードする。シリアル番号が増えているゾーン情報のみリロードする。
reconfig named.conf と、新しく追加したゾーンのみリロードする。
stats サーバの統計情報を /var/named/named.stats ファイルに書き出す。
status サーバのステータス情報を表示(標準出力)する。
dumpdb [-all|-cache|-zones] [view ...] キャッシュデータを /var/named/named_dump.db ファイルにダンプする。
flush サーバのキャッシュをすべて消去する。
stop named を停止する。rc スクリプトでも使用されている。


■とりあえず立ててみたけど


それぞれの設定内容が適切なのかは謎。
とりあえずオープンリゾルバにはなってないので、迷惑かけることはないと思われ。

 

 

Sponsored Link