Robocopyのログのサマリー部分を整形してみる

Robocopyのログのサマリー部分が見づらいので、整形してみました。

スクリプト名は、logreport.sh です(適当に直して下さい)。

#!/bin/sh

<< COMMENTOUT

2019/09/04作成

robocopyログファイル(Windows2016版)のサマリー部分の整形スクリプト
フォルダ"log"内のrobocopy*.logをUTF-8に変換し、"report"フォルダにサマリー部分を出力します
要 nkf

処理前のlogの最終部分
  ------------------------------------------------------------------------------

                       合計        コピー済み       スキップ       不一致        失敗    Extras
     ディレクトリ:        18571            0      18571         0         0         0
       ファイル:       157425       152728       4697         0         0         0
        バイト: 299399096023 292980525070 6418570953         0         0         0
         時刻:      0:15:20      0:10:48                        0:00:00   0:04:32


         速度:              451855700 バイト/秒
         速度:              25855.390 MB/分
     終了: 2019年xx月xx日 xx:xx:xx

処理後のlog
  ------------------------------------------------------------------------------

                    Total       Copied    Skipped  Mismatch    FAILED    Extras
     Dirs :         18571            0      18571         0         0         0
    Files :        157425       152728       4697         0         0         0
    Bytes :  299399096023 292980525070 6418570953         0         0         0
    Times :       0:15:20      0:10:48                        0:00:00   0:04:32


         速度:              451855700 バイト/秒
         速度:              25855.390 MB/分
     終了: 2019年xx月xx日 xx:xx6:xx

使い方
 カレントディレクトリに"log"というフォルダを作り、robocopyのログファイルを格納します
 カレントディレクトリに"report"というフォルダを作っておきます
 WSLを起動し、カレントディレクトリに移動します
 ./logreport.sh をキックします


※もともとは Powershell で作りましたが、
 処理ファイル数が多いと不安定になるようなので、
 シェルスクリプトで作り直しました

※事前に、WSLにnkfをインストールしておいて下さい

COMMENTOUT

tmpfile=$(mktemp)
tmpfile2=$(mktemp)
tmpfile3=$(mktemp)

# ログファイルの文字コードを UTF-8 にする
cd log
echo ログファイルをUTF-8化しています...
find . -name 'robocopy*.log' -type f -print0 | xargs -0 nkf -u -Lu --overwrite -w 

# ログファイルの最後の15行目を取り出し、
# ----------で始まる行以降を取り出し(ファイルが短くて-----が2行入ってしまった場合は2番目以降)
# サマリー行の全角文字を半角文字に変換する
echo ログファイルを整形出力します
for fname in `find ./robocopy*.log`
do
        echo $fname
        # 各ログファイルの末尾15行を取り出す
        tail -15 $fname > $tmpfile
        if [ `grep -c '^----------' $tmpfile` -eq 2 ] ; then
                # ^---------- が2行ある場合は、最初の行を潰す
                sed '0,/^----------/ s/^----------/xxx/' $tmpfile > $tmpfile3
                # ^---------- 以降を出力
                fname1=${fname#.\/robocopy_}
                echo ${fname1%.log} > $tmpfile2
                sed -n '/^----------/,$p' $tmpfile3 >> $tmpfile2
                rm $tmpfile3
        else
                # ^---------- 以降を出力
                fname1=${fname#.\/robocopy_}
                echo ${fname1%.log} > $tmpfile2
                sed -n '/^----------/,$p' $tmpfile >> $tmpfile2
        fi
        # サマリーの全角を半角に変換
        sed -e 's/^   ディレクトリ:/   Dirs : /g' \
            -e 's/^     ファイル:/  Files : /g' \
            -e 's/^      バイト:/  Bytes : /g' \
            -e 's/^       時刻:/  Times : /g' \
            -e 's/   合計/Total/g' \
            -e 's/ コピー済み/Copied/g' \
            -e 's/   スキップ/Skipped/g' \
            -e 's/     不一致/Mismatch/g' \
            -e 's/    失敗/FAILED/g' \
            $tmpfile2  > ../report/$fname
        done
rm $tmpfile
rm $tmpfile2

以上です。

ブラウンシェーバーのアルコール洗浄カートリッジについて

ブラウンのシェーバーのクリーン&リニューシステム用カートリッジですが、アルコール洗浄液がすぐに飛んでしまって頻繁に交換するようですよね。また、このカートリッジのお値段が…。

純正カートリッジ

そこで次のものを試してみたら、結構いい感じだったので、載せてみます。

取り敢えず1個でお試し

お得な2個セット

今お使いのカートリッジの交換ランプが点灯したら、適当にこの液を足すだけです。

FortiGate 6.0.x vm版のライセンス切れ対策

Hyper-V版のFortiGate 6.0.6 build0272(GA)を建ててみたところ、いきなりライセンス切れで蹴り出されてしまいました。

ということで対策してみます。

# 一旦vmを停止
execute shutdown

# vm停止を確認
# ハイパーバイザー側でvmに割り付けているNICを切断
# 切断を確認してからvmを起動

# admin でログイン
# ライセンスと設定を削除
execute factoryreset
# 再起動されます

# 再起動後、adminでログイン
# ntpの設定を削除
config system ntp
set ntpsync disable
set type custom
end
# vm停止
execute shutdown

# vm停止を確認
# ハイパーバイザー側でvmにNICを接続
# 接続を確認してからvmを起動

# adminでログイン
# IPアドレスを192.168.0.2/24 デフォルトゲートウェイを192.168.0.1にしてみる例
config system interface
edit port1
set mode static
set ip 192.168.0.2 255.255.255.0
set allowaccess [必要なサービスを半角スペースで区切って列記]
# サービスを上書きではなく追加する場合は、
# set allowaccess ではなく、
# append allowaccess [必要なサービスを半角スペースで区切って列記]
end
config router static
edit 1
set device port1
set gateway 192.168.0.1
end

これで2週間くらい遊べますね。

QNAPにZabbixを載せてみるテスト(その2:パッケージ編)

QNAPにZabbixパッケージ(バージョン4.4)を入れてみました(アプライアンス編については別記事とします)。
一部嵌まった箇所(シャットダウン時にZabbixエンジンが停止出来ず、ハングアップしたように見える)があったので、記録として残しておきます。

手順

    1. Ubuntu 18.04 LTS インストール
      snmp関係パッケージはインストール不要です。
      (Web検索で入れるように書かれているものもありますが)

    2. Ubuntu起動時のスプラッシュ画面は不要なので、grub を変更します

      vi /etc/default/grub
      GRUB_CMDLINE_LINUX_DEFAULT=”インストーラが入れた文字列”
      行を
      GRUB_CMDLINE_LINUX_DEFAULT=””
      に変更、保存、update-grub2 にて反映させます

    3. 一旦再起動

      shutdown -r now
    4. 仮想支援エージェントの導入

      apt update
      apt install -y qemu-guest-agent
    5. Apache用日本語環境の導入

      apt install -y language-pack-ja-base language-pack-ja
      localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
    6. タイムゾーン変更
      timedatectl set-timezone Asia/Tokyo
    7. 色々更新して再起動
      apt -y upgrade
      shutdown -r now
    8. Apache2の設定
      apt install -y apache2
      vi /etc/apache2/conf-enabled/security.conf
      # 25行目:変更
      ServerTokens Prod
      
      vi /etc/apache2/apache2.conf
      # 70行目:サーバー名追記
      ServerName www.example.com
      
      vi /etc/apache2/sites-enabled/000-default.conf
      # 11行目:管理者アドレス変更
      ServerAdmin webmaster@example.com
      
      # Apache2変更反映
      systemctl restart apache2
    9. Zabbixパッケージインストール
      cd ~
      wget https://repo.zabbix.com/zabbix/4.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.4-1+bionic_all.deb
      dpkg -i zabbix-release_4.4-1+bionic_all.deb
      apt update
      apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent
    10. データベース初期化
      mysql -uroot -p
      password
      create database zabbix character set utf8 collate utf8_bin;
      grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
      quit;
      
      zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
      password
      #(数分~十数分かかります)
    11. Zabbixにデータベースアクセス用パスワードを設定
      vi /etc/zabbix/zabbix_server.conf
      DBPassword=password
    12. Zabbixサーバへのタイムゾーン設定
      vi /etc/zabbix/apache.conf
      # php_value date.timezone Europe/Riga
      ↓
      php_value date.timezone Asia/Tokyo
      # ※2箇所あります
    13. グラフの文字化け対策
      日本語フォントをIPAゴシックにします
      cd ~
      apt-get install -y unzip
      wget https://ipafont.ipa.go.jp/IPAfont/ipag00303.zip
      cd /usr/share/fonts
      unzip ~/ipag00303.zip
      rm /etc/alternatives/zabbix-frontend-font
      ln -s /usr/share/fonts/ipag00303/ipag.ttf /etc/alternatives/zabbix-frontend-font
      cd ~
    14. Zabbixの起動および自動起動設定
      systemctl restart zabbix-server zabbix-agent apache2
      systemctl enable zabbix-server zabbix-agent apache2
    15. シャットダウン時のハングアップ対策(ZBX-15602/ZBX-16708)
      vi /etc/systemd/system/multi-user.target.wants/zabbix-server.service
      # [Unit]ブロックのAfterを変更
      After=syslog.target
      After=network.target
      ↓
      After=syslog.target network.target mariadb.service
      # 保存終了
      systemctl daemon-reload
      systemctl restart zabbix-server
    16. ZABBIXのGUIにログインして初期設定
      データベースのパスワードは password です。
    17. Zabbiサーバーが動作していません対策

      vi /etc/zabbix/web/zabbix.conf.php
      $ZBX_SERVER = 'localhost';
      ↓
      $ZBX_SERVER = '127.0.0.1';
      # 保存終了
      systemctl stop zabbix-server
      shutdown -r now
    18. IPアドレスを変更する場合の例

      vi /etc/netplan/50-cloud-init.yaml
      
      network:
          ethernets:
              ens3:
                  dhcp4: true
      ↓
      network:
          ethernets:
              ens3:
                  dhcp4: no
                  addresses: [192.168.200.50/24]
                  gateway4: 192.168.200.1
                  nameservers:
                      addresses: [8.8.8.8, 1.1.1.1]
      # 保存終了
      vi /etc/resolf.conf
      # 適当に編集
      # 保存終了 # 設定反映 netplan apply
    19. GUIログイン
      ブラウザから http://[IPアドレス]/zabbix/ でログインします。
      ログインID/PWは admin / zabbix です。

    20. 機器監視テスト
      機器監視用のテンプレートは Template Module ICMP Ping を使って下さい。

    21. トラフィック量グラフ生成テスト
      テンプレートは Template Net Network Generic Device SNMPv1 が良いと思います。
      ホストを追加してからグラフに値が載ってくるまでは、ある程度時間がかかります(設定→ホスト、の一覧の『グラフ』に、検出されたグラフ数が出ます)。

    22. メール発報設定
      1. 管理→メディアタイプ→Emailを更新
      2. 管理→ユーザー→対象ユーザ名→メディア→追加で追加
      3. 設定→アクション→Report problems to Zabbix administrators→新規条件を追加し、有効をクリックし、更新メール発報の設定

その他

  • Zabbixシャットダウン時
    VMに入って shutdown -h now するか、VirtualizationStationからシャットダウン信号を送って下さい。
    オペレーション時、時間的余裕があるなら、OSを落とす前に systemctl stop zabbix-server をしてもよいと思います。

  • Zabbix本体のデータ収集を有効にしているときの不具合
    VM起動時にシステムからZabbixサーバに渡される時刻の関係で、Zabbix起動時のデータは『9時間未来』となります。
    次にZabbixサーバがJSTな時刻を取得した時点で、巻き戻りが発生するため、見かけ上いまいまのデータは9時間後まで欠落します。
    Zabbix本体は『無効』にしておくか、データが繋がるまで数時間待って下さい。

  • データ収集が途切れた場合
    systemctl stop zabbix-agent
    systemctl restart zabbix-server
    systemctl start zabbix-agent

    して下さい。

以上です。

QNAPにZabbixを載せてみるテスト(その1:アプライアンス編)

QNAPにZabbixアプライアンス(バージョン4.4)を入れてみました(パッケージ版を入れてみた件については別記事とします)。
一部嵌まった箇所(シャットダウン時にZabbixエンジンが停止出来ず、ハングアップしたように見える)があったので、記録として残しておきます。

注意

  • イメージの展開にかなり時間がかかる場合がありますので、余裕を持った構築スケジュールとして下さい
  • 構築作業中はQNAP本体からインターネットが見える必要があります
  • VNC画面からだとキーボード配列の問題があるため、IP reachable になった時点でsshクライアントから作業した方が良いと思います
  • QNAPのファームウェアバージョンは 4.4.1 で確認しています
  • snmp関係パッケージはインストール不要です
    Web上で検索すると手動で入れるようにと出て来る場合もありますが、パッケージに含まれていますので入れないで下さい
  • DHCPでIPアドレスが拾えるようにしておいて下さい
    あとで変更可能です

構築手順

  1. サポートされるNASの型式を確認しておきます
    https://www.qnap.com/solution/virtualization-station-3/ja-jp/

  2. QNAP本体のファームウェアを最新に上げておきます

  3. AppCenter から Virtualization Station をインストールします

  4. Zabbix公式から Zabbix Appliance のISOイメージファイルをダウンロードします
    ダウンロードしたイメージファイルはNAS(QNAP)の適当なフォルダに置いておきます。

  5. ISOイメージファイルをQNAPの VirtualizationStation 3 にマウントさせ、VMを作ります
    各パラメータの例は以下の通り。
    1. fig01_一般
    2. fig02_起動オプション
    3. fig03_ネットワーク
    4. fig04_ストレージ
    5. fig05_CD/DVD
    6. fig06_ビデオ
    7. fig07_音声
    8. fig08_コンソール操作
    9. fig09_USB
    10. fig10_その他


  6. インストール完了後、VirtualizationStation からVMのコンソールにアクセスします
    ログインプロンプトが出ていない場合は、コンソール画面内をクリックしてフォーカスを与えたあと、『Alt』+『F2』等でttyセッションを切り替えてみて下さい。

  7. Ubuntu CUIへのログイン
    ID/PWは appliance / zabbix です。
    rootには sudo su – で昇格できます(パスワードはzabbix)。

  8. 以後の作業はrootに昇格して行います

  9. Ubuntu起動時のスプラッシュ画面は不要なので、/etc/default/grub を変更します
    vi /etc/default/grub
    GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
    行を
    GRUB_CMDLINE_LINUX_DEFAULT=””
    に変更、保存、update-grub2 にて反映させます
  10. 一旦再起動

  11. タイムゾーン変更
    cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
  12. VMゲストエージェントのインストール
    apt update
    apt install -y qemu-guest-agent
  13. Zabbix アプライアンスのIPアドレス確認
    コンソールから ifconfig -a で見ることもできますが、上の手順でエージェントを有効化したため、Virtualization Station の概要→Zabbix→ギアアイコン→右側ペインの『ネットワーク』にても確認出来ます。

  14. Zabbixが描画するグラフの文字化け対策
    日本語フォントをIPAゴシックにします。
    cd ~
    apt install -y unzip
    wget https://ipafont.ipa.go.jp/IPAfont/ipag00303.zip
    cd /usr/share/fonts
    unzip ~/ipag00303.zip
    rm /etc/alternatives/zabbix-frontend-font
    ln -s /usr/share/fonts/ipag00303/ipag.ttf /etc/alternatives/zabbix-frontend-font
  15. Zabbixのタイムゾーンの変更
    vi /etc/apache2/conf-available/zabbix.conf
    php_value date.timezone Europe/Riga

    php_value date.timezone Asia/Tokyo
    ※2箇所あります
  16. Zabbiサーバーが動作していません対策
    vi /etc/zabbix/web/zabbix.conf.php
    $ZBX_SERVER = ‘localhost’;

    $ZBX_SERVER = ‘127.0.0.1’;
  17. シャットダウン時のハングアップ対策(ZBX-15602/ZBX-16708)をします
    vi /etc/systemd/system/multi-user.target.wants/zabbix-server.service
    # [Unit]ブロックのAfterを変更
    After=syslog.target
    After=network.target
    ↓
    After=syslog.target network.target mysql.service
    
    # 保存して終了
    # serviceファイルの変更を反映させます
    systemctl daemon-reload
    systemctl restart zabbix-server
  18. 念のため再起動
    systemctl stop zabbix-server
    shutdown -r now
  19. GUIログイン
    ブラウザから http://[IPアドレス]/zabbix/ でログインします。
    ログインID/PWは admin / zabbix です。

  20. IPアドレス変更(192.168.0.10/24 GW192.168.0.1 DNS192.168.0.2にする場合)
    vi /etc/network/interfaces
    iface XXXX inet dhcp
    ↓
    iface XXXX inet static
    address 192.168.0.10
    netmask 255.255.255.0
    gateway 192.168.0.1
    dns-nameservers 192.168.0.2
    vi /etc/resolv.conf
    # 適切に編集・保存ください
  21. 機器監視テスト
    機器監視用のテンプレートは Template Module ICMP Ping を使って下さい。

  22. トラフィック量グラフ生成テスト
    テンプレートは Template Net Network Generic Device SNMPv1 が良いと思います。
    ホストを追加してからグラフに値が載ってくるまでは、ある程度時間がかかります(設定→ホスト、の一覧の『グラフ』に、検出されたグラフ数が出ます)。

  23. メール発報設定
    1. 管理→メディアタイプ→Emailを更新
    2. 管理→ユーザー→対象ユーザ名→メディア→追加で追加
    3. 設定→アクション→Report problems to Zabbix administrators→新規条件を追加し、有効をクリックし、更新メール発報の設定

その他

  • Zabbixシャットダウン時
    VMに入って shutdown -h now するか、VirtualizationStationからシャットダウン信号を送って下さい。
    時間的余裕があるなら、OSを落とす前に systemctl stop zabbix-server をしてもよいと思います。

  • Zabbix本体のデータ収集を有効にしているときの不具合
    VM起動時にシステムからZabbixサーバに渡される時刻の関係で、Zabbix起動時のデータは『9時間未来』となります。
    次にZabbixサーバがJSTな時刻を取得した時点で、巻き戻りが発生するため、見かけ上いまいまのデータは9時間後まで欠落します。
    Zabbix本体は『無効』にしておくか、データが繋がるまで数時間待って下さい。

  • データ収集が途切れた場合
    systemctl stop zabbix-agent
    systemctl restart zabbix-server
    systemctl start zabbix-agent

    して下さい。

以上です。