keima's caprice diary

気付いたことをメモのように綴ります。なるべく義務っぽくならないように気まぐれに記録します。

CentOs7 Chrony NTPサーバとしての設定

01. /etc/chrony.conf編集
---
server ntp.nict.jp iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
### ▼同期元クライアントに制限をかけたい場合は指定
allow 192.168.10.0/24 10.10.0.0/24
### ▼Stratum1を最上位として何番目のStratumにするか指定
local stratum 10
logdir /var/log/chrony
log measurements statistics tracking
---

 

02. chrony再起動

systemctl restart chronyd

 

03. 動作確認

chronyc sources -v

MS列にそれぞれ^*などと表示されいれば上位NTPサーバとローカルホストが時刻同期できている。
下位NTPクライアントがローカルホストと同期できているかどうかは下位クライアント側で確認する必要がある。
 

centos linux ntpd 設定手順

Linux NTP 時刻同期設定

NTPクライアントとして使用するケース

 

Target : CentOS6.8


01. システムクロックの確認
date

02. ハードウェアクロックの確認
hwclock -w
hwclock --show

03. NTPD確認
/etc/init.d/ntpd status

04. NTPD停止
/etc/init.d/ntpd stop

05. システムクロックをNICTに合わせる
ntpdate ntp.nict.jp

06. /etc/ntp.conf編集
---
server -4 ntp.nict.jp
server -4 ntp1.jst.mfeed.ad.jp
server -4 ntp2.jst.mfeed.ad.jp
server -4 ntp3.jst.mfeed.ad.jp
---

07. NTPD起動
/etc/init.d/ntpd start

08. ntpd 状態確認
各サーバの前に*とか+がつくと同期完了
ntpq -p

09. 自動起動を設定
chkconfig ntpd on
chkconfig --list ntpd

10. ハードウェアクロックをシステムクロックに同期
hwclock -w
hwclock --systohc

以上。

カンマ区切りの数字が羅列されたファイルを読み込んで、カンマで区切られた要素数を合計して標準出力に表示するPerl

使い方 : 第1引数にカンマ区切りの数字が羅列されたファイルを置いてperl実行!!

uniq-sort-count.pl #!/bin/perl -w
open IN,$ARGV[0];$_=<IN>;close IN;chomp;
%uniq=map{$_=>1}split(/,/);
@_=sort{$a<=>$b}keys %uniq; $num = $#_+1;
print"$num\n";

dig要求と応答を抽出するperlスクリプト

作業フォルダ内にdigコマンドを実行しまくったテラタームログ(拡張子log)ファイルがたくさんあって、コマンドを実行した際のクエリとレスポンスをまとめる作業に便利かと思って作成した。

以下のようなパターンの行を抽出してresult.txtに書き出す。

[root@root ~]# dig @localhost yahoo.com
;; QUESTION SECTION:
(クエリパターン)
;; ANSWER SECTION:
(dig結果)

#! /bin/perl -w
use warnings;
use strict;
# 変数初期化
my @filename = ();
my $filen;
my $bkupfile;
my @array = ();
my $flag = '0';
# ファイル名を配列保存
while(glob "*.log"){push(@filename, "$_");}
# ファイル名をスカラ保存
# 最下部でループ処理クローズ。
while($filen = shift(@filename)){
open(READ,"< $filen");open(OUT,"> ./result.txt");
# 各行を配列保存
while(<READ>){
push(@array, $_);
}
close(READ);
# パターンマッチ抽出
# マッチしたらフラグを立てる
while(my $line = shift @array){
if($line =~ /dig/){print OUT $line;}
if($line =~ /QUESTION SECTION/){print OUT $line;$flag = '2';}
elsif($line =~ /ANSWER SECTION/){print OUT $line;$flag = '1';}
elsif($flag == '1' or $flag == '2'){if($line =~ /^\n$/){$flag = '0';next;}else{print OUT $line;}
}
}
close OUT;
}

SoftEtherVpnServerでDynamicDNS通知設定の値が不意に変化した場合の対処方法

SoftEtherVpnServerにてインターネット上に配置されている某ダイナミックDNSサーバに通知を行う機能がある。その通知に使う値について、何かのきっかけで不意に希望した値とは異なる値に変化する場合がある。その際のリカバリ方法を記す。

 

■SoftEtherVpnServerが可動しているOSがLinuxの場合

 

備考:SoftEtherVpnServerは定期的に設定ファイルをバックアップしている。

 

00. softEtherVpnServerがインスコされているディレクトリ内に「backup.vpn_server.config」というディレクトリがあるので、その内部を確認する。

01. 希望するDynamicDNSの値が設定されていた頃のバックアップファイルを開く。

02. 「byte Key」の値をコピーする等で控える。

03. 現在使用している設定ファイルにて、 「byte Key」の値を修正する。

04. SoftEtherVpnServerサービスを再起動する。

 

以上。

 

可動OSがWindowsの場合はバックアップファイルがどこに保存されているのか確認していないので、ここでは記述しない。誰か記述してくれることを期待(他力本願)。

Wiresharkの動作がもっさりしていて困るのでdumpcapしてみた。

WiresharkGUIモードで実行するとPCの環境によっては動作が遅くなることがある。
よって、少しでも省エネでパケットキャプチャをするための取り組みとしてdumpcapを使うのも妙案かと思い、dumpcapを実行してpcapファイルを出力するバッチスクリプトを書いた。

前提:
OS = Windows7 32bit版
wiresharkがインストールされているフォルダ = "C:\Program Files\Wireshark\"
キャプチャファイルを出力するフォルダ = "D:\tmp\"

WIRESHARKをインストールすると、通常はdumpcap.exeも同梱される。

#---VVV------------<autocap.bat>------------VVV---#
@echo off
chcp 932
set WiresharkPath=C^:^\Program^ Files^\Wireshark\
set OutPath=D^:^\tmp^\
for /f "tokens=1,2,3 delims=/ " %%a in ('date /t') do set today=%%a%%b%%c
for /f "tokens=1,2,3 delims=: " %%a in ('time /t') do set current_time=%%a%%b%%c
cd /d %WiresharkPath%
echo キャプチャするインターフェースをIDで指定してください。
echo キャプチャを停止する場合は、Ctrl + C です。
echo:
dumpcap -D
echo:
set /p INP="インターフェースID>"
dumpcap -i %INP% -w %OutPath%%today%%current_time%.pcap
pause
exit
#---AAA------------<autocap.bat>------------AAA---#

autocap.batを実行すると、PC上のどのインタフェイスでキャプチャするか問われるので、
適当な数字を入力してEnter!
適当なタイミングでCtrl+Cすればキャプチャを終了できる。

perl one-liner substitute 置換

perlワンライナーで単純な置換作業をするならコレ

単純な置換perl -pe 's/[before]/[after]/;' [対象ファイル]

ただコレ、1行ずつ評価するため複数行の書き換えは出来なしすせそ。
複数行の場合-0オプションを使い、オプション修飾子にmつけて実行すればおk。

全行の置換perl -0pe 's/[before]/[after]/m;' [対象ファイル]

-pはデフォルトでは1行ずつ-eの引数を評価する。
-0でセパレータがヌル文字(\0)になり、ファイル全体を一度に読み込む。
サイズの大きいファイルに対して実行しない方が良い。
正規表現のオプション修飾子にmを指定し、複数行モードに する。