LinuxのNTPクライアント設定

LinuxのシステムクロックをNTPサーバーと動機する設定。CentOS6系用。 現在のシステムクロックを確認 現在のハードウェアクロックを確認 NTP daemonの状態確認 そもそも止まってるかインストールされていない可能性もある。 NTP daemon停止 そもそも止まってたりインストールされてなかったら無視。 シストテムクロックをNICTの時刻と同期させる NTP設定の修正 NTP daemon起動 NTP daemon 状態確認 行頭に*または+がつくと同期完了。 サービス自動起動設定 確認は以下 ハードウェアクロックをシステムクロックに同期 以上。

要素の個数を出力するperlスクリプト

このスクリプトが可能にすること カンマ区切りの数字が羅列されたファイルを読み込んで、カンマで区切られた要素数を合計して出力に表示する。その際、重複した要素はいくつ重複していても1個としてカウントする。 使い方 第1引数にカンマ区切りの数字が羅列されたファイル名を入力して実行する。 スクリプト内容 スクリプトの説明 1行目:シェバン。警告スイッチを一応つける。 2行目: コマンドライン引数の1個目のファイルを読み込み 3行目: 1行取り出してデフォルトスカラ変数に代入 4行目: ファイルハンドラクローズ 5行目: デフォルトスカラ変数の改行コード除外 6行目: デフォルトスカラ変数$_をカンマ区切りで分割してできた配列のそれぞれの要素に対してmaoで処理を実行。処理内容は配列の要素をキーに、値を1にしたハッシュを生成して配列変数%uniqに代入するというもの。 7行目: %uniqのキーを取り出してできた配列を昇順で並び替えてデフォルト配列変数に代入 8行目:前作業でできた配列の最後の要素を「$#_」でとりだして1加算したものを$numに代入 実行結果 対象の要素が文字列の場合は数値ソートでエラー吐くけど要素数を知るという目的だけは達成できた。エラーが恥ずかしいのでもう少し改良の余地はあると思う。

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

スクリプトを作った経緯 作業フォルダ内にdigコマンドの結果を出力したテキストファイル(拡張子log)がたくさんある状況で、それぞれのファイル内のdigクエリとレスポンスを(必要な文字列だけを抜き取って)一つのテキストファイルにまとめたかった。 抽出する文字列 以下のようなパターンの行を抽出してresult.txtに書き出す。 [root@root ~]# dig @localhost yahoo.com;; QUESTION SECTION:(クエリパターン);; ANSWER SECTION:(dig結果) スクリプト内容 内容はまぁまぁ雑なので、もっと簡略化できると思う。

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

SoftEtherVpnServerにてインターネット上のダイナミックDNSサーバに通知を行う機能がある。その通知に使う値について、何かのきっかけで不意に希望した値とは異なる値に変化する場合がある。その際のリカバリ方法を記す。 ここではSoftEtherVpnServerが稼働しているOSがLinuxである前提として記述するけど、Windowsも場合もだいたい同じだと思う。 手順 初期設定では、定期的に設定ファイルをバックアップしているので、それを利用する。 01. softEtherVpnServerがインストールされているディレクトリ内に「backup.vpn_server.config」というディレクトリがあるので、その内部を確認する。 02. 希望するDynamicDNSの値が設定されていた頃のバックアップファイルを開く。 03. 「byte Key」の値をコピーする等で控える。 04. 現在使用している設定ファイルにて、 「byte Key」の値を修正する。 05. SoftEtherVpnServerサービスを再起動する。 以上。

WiresharkをCLIで実行

WiresharkをGUIモードで実行するとPC環境によっては動作が遅くなることがある。少しでも省エネでパケットキャプチャをするための取り組みとしてdumpcapを使うのも妙案かと思い、バッチスクリプトを書いた。 wiresharkがインストールされているフォルダ : C:\Program Files\Wiresharkキャプチャしたパケットを出力するフォルダ : D:\tmp WIRESHARKをインストールすると、通常はdumpcap.exeも一緒にインストールされる。 バッチスクリプトの中身 上記バッチスクリプト実行すると、PC上の、どのネットワークアダプタでキャプチャするか問われるので、希望するネットワークアダプタの番号を入力してEnterキーを押す。適当なタイミングでCtrl+Cすればキャプチャを終了できる。

perlで文字列の置換

単行の置換 複数行の置換 複数行の場合「-0」オプションを使い、オプション修飾子に「m」をつけて実行すれば良い。 オプションの説明 -p -eで受け取る引数を1行ずつ評価する。 -0 セパレータがヌル文字(\0)になり、ファイル全体を一気に読み込む。ファイル全体を1行をみなすようなもの。サイズが大きいファイルに対してはこのオプションをつけない方が良い。 //m 複数処理モード。パターンマッチしたもの全てを置換対象にする。 オプションの説明

任意の文字列を含むファイルを検索

Linuxコマンド「grep」への理解を深めるためにメモ。 grepのオプション -r recursiveの頭文字。サブディレクトリがあれば再帰的に検索する。 -n 検索文字列がマッチした行番号を出力する。 -w 文字列全体にマッチする場合。 -l ファイル名だけ出力する。 使用法1 index.html というファイルから「css」という文字列を含む行をすべて抽出し、行番号を付与する。 使用法2 カレントディレクトリ配下すべてのファイルから「css」という文字列を含む行を抽出し、行番号を付与する。

awkとipコマンドでアドレスを抽出

プレフィクスなどを除いた、自身のIPアドレスのみを表示したい場合、こうする。 環境:CentOs6.8 条件:IPアドレスの一部がわかっている。 ip a | grep “192.168.hoge” | awk ‘{print $2}’ | awk -F/ ‘{print$1}’

コンピュータ名とホスト名の違い

Windowsには「コンピュータ名」と「ホスト名」という設定値がある。 NetBiosを用いたファイル共有やプリントスプール等の通信で使うのがコンピュータ名で、TCP/IP等のインターネット等のIPアドレスを必要とする通信で使うのがホスト名。

syslogをslackに転送

あちこちのネットワーク機器からシスログサー(Linux/rsyslog)に転送されてくるメッセージを、slackにも飛ばす方法。 slack token 取得 “Legacy tokens | Slack” にて “Legacy token generator” を使用してtokenを控える。 いまはレガシートークンの使用ができない、というかセキュリティ的に危険なのでボットトークンを使うべき。 “xoxp-” で始まる文字列がそれ。 名前つきパイプを作成 ログ出力先をパイプに指定する vi /etc/rsyslog.conf rsyslog 再起動 slack転送スクリプトを作成 vi /root/logpost.sh slackに転送用チャンネルを作成 上記スクリプトでcurl コマンドの-dオプションで指定したチャンネル名をslack側にて作成する。存在しないチャンネルにはポストできないので。 スクリプトを実行 以上。 他に考慮すべき点 実行環境がシャットダウン or 再起動したらスクリプト処理が終了してしまうので、再度スクリプトを実行するように工夫する必要はある。