ClamAVのウイルス情報の更新エラーへの対応 [Linux]
また、この場合にはウイルスチェックでもエラーが発生する。
以下の記述は、備忘録として、この事象への対応方法をまとめたものである。
[ソフトウェアのバージョン]
・clamav 0.99.2
・OS: Debian 8/9、CentOS 6/7
1. 発生事象
(1) ウイルス情報の更新時のエラー
freshclam の実行時に、下記のようなエラーが発生する。
ClamAV update process started at Mon Aug 7 04:00:01 2017 main.cvd is up to date (version: 58, sigs: 4566249, f-level: 60, builder: \ sigmgr) nonblock_connect: connect timing out (30 secs) Can't connect to port 80 of host db.local.clamav.net (IP: 120.29.176.126) Trying host db.local.clamav.net (27.96.54.66)... Downloading daily-23639.cdiff [100%] WARNING: [LibClamAV] cli_tgzload: Invalid checksum for file daily.hdb WARNING: [LibClamAV] Can't load /usr/local/tools/clamav/lib/clamav/\ clamav-a91f125d25aeacd304ebb2e1aeb81814.tmp/\ clamav-677b156a3fc4f33d7fe701aa680c0c20.cld: Malformed database ERROR: Failed to load new database: Malformed database WARNING: Database load exited with status 55 ERROR: Failed to load new database (status=55)
・daily.cld のダウンロードで問題が発生する。
・/usr/local/tools/clamav/lib/clamav は /var/lib/clamav へのリンクである。
(2) ウイルスチェック時のエラー
clamscan の実行時に、下記のようなエラーが発生する。
LibClamAV Error: cli_tgzload: Invalid checksum for file daily.hdb LibClamAV Error: Can't load /var/lib/clamav/daily.cld: Malformed database ERROR: Malformed database ----------- SCAN SUMMARY ----------- Known viruses: 523608 Engine version: 0.99.2 Scanned directories: 0 Scanned files: 0 Infected files: 0 Data scanned: 0.00 MB Data read: 0.00 MB (ratio 0.00:1) Time: 0.887 sec (0 m 0 s) (status=2)
・ウイルス情報の更新時のエラーが原因で発生する。
2. 対処方法
2-1. ウイルス情報の更新時のエラーへの対応
freshclam.conf を編集し、設定を下記のように変更する。
・Debian 8/9 の場合: /etc/clamav/freshclam.conf
・CentOS 6/7 の場合: /etc/freshclam.conf
(1) DatabaseMirror
DatabaseMirror db.jp.clamav.net DatabaseMirror db.us.clamav.net
ウイルス情報のダウンロード先を指定する。
・db.jp.clamav.net は、db.local.clamav.net の正式名称である。
・db.jp.clamav.net は、database.clamav.net の正式名称である。
(2) CompressLocalDatabase
CompressLocalDatabase yes
ローカル・データベースを圧縮する。
・daily.{cld,cvd} を gzip で圧縮するか指定する。
・本来は daily.cvd となると思うが、daily.cld で保存されることがある。
(file コマンドの実行結果では、gzipped と表示される。)
(補足)
この設定により、更新時のエラーが発生しなくなったように思われる。
2-2. エラーが発生した時の対応
(1) ウイルス情報の更新時のエラー
(a) ウイルス情報の更新を再実行する。
改善しない場合にのみ、以降の手順を実施する。
(b) エラーに関係するファイルを削除する。
# rm -fr /var/lib/clamav/*.tmp # rm -f /var/lib/clamav/daily.{cld,cvd} # rm -f /var/lib/clamav/mirrors.dat
(c) ウイルス情報の更新を再実行する。
(2) ウイルスチェック時のエラー
(a) ウイルス情報の更新が異常終了している場合
ウイルス情報の更新時のエラーへの対応を行う。
(b) ウイルス情報の更新が正常終了している場合
ウイルスチェックを再実行する。
3. 備考
(1) ウイルス情報の更新方法
現在、下記の方針に沿った方法でウイルス情報を更新している。
(a) freshclam コマンドを使用する。
(b) freshclam を cron から定期的に実行する。
freshclam のデーモン・モードは使用しない。
(c) 独自にログファイルを作成する。
Pacemaker + Corosync + DRBD でのクラスタ環境の構築 [CentOS]
・pacemaker-1.1.12-8.el6_7.2.i686
・corosync-1.4.7-2.el6.i686
・kmod-drbd84-8.4.7-1_1.el6.elrepo.i686
・drbd84-utils-8.9.5-1.el6.elrepo.i686
・OS: CentOS 6.7
1. 要件
Pacemaker + Corosync のクラスタリング環境に DRBD リソースを追加する。
2. DRBD の導入
(1) パッケージのインストール
下記のパッケージをインストールする。
・kmod-drbd84-8.4.7-1_1.el6.elrepo.i686
・drbd84-utils-8.9.5-1.el6.elrepo.i686
(2) DRBD の設定
/etc/drbd.d/{global_common.conf,r0.res} を下記のように変更する。
(詳細は備考を参照)
(a) 対象のノード
・vm2.private.net(192.168.0.22)
・vm3.private.net(192.168.0.23)
(b) ディスクのデバイス・パス
/dev/sdc1
(c) DRBD デバイス
/dev/drbd0
(d) タイムアウト値
wfc-timeout 30
3. DRBD の自動機能の停止
# chkconfig drbd off # chkconfig --list drbd
4. リソースの定義
(1) DRBD
# pcs resource create drbd ocf:linbit:drbd \ drbd_resource=r0 \ op monitor interval=20s ## Master/Slave 型のリソースとしての定義 # pcs resource master ms-drbd drbd \ master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
(2) ファイルシステム
# pcs resource create fs-drbd ocf:heartbeat:Filesystem \ device=/dev/drbd0 directory=/share-drbd fstype=ext3 \ op monitor interval=20s
(3) 既存リソースとの制約条件の設定
# pcs resource group add group-1 fs-drbd --before fs-nfs # pcs constraint colocation add master ms-drbd with group-1 INFINITY # pcs constraint order promote ms-drbd then start group-1 (補足) # pcs resource group list group-1: fs-drbd fs-nfs nfs-server vip-check vip
(4) その他
エラーが発生する場合には、当該リソースの故障履歴をクリアする。
(例) # pcs resource cleanup drbd # pcs resource cleanup fs-drbd # pcs resource cleanup ...
5. 備考
(1) DRBD の構築手順
cf. http://dan-project.blog.so-net.ne.jp/2016-05-10
Pacemaker + Corosyncのクラスタ環境での制約条件の設定 [CentOS]
そこで、以前実施した Pacemaker の構築手順の見直しを行った。
以下は、その際に気づいたことをまとめたものである。
[ソフトウェアのバージョン]
・pacemaker-1.1.12-8.el6_7.2.i686
・corosync-1.4.7-2.el6.i686
・OS: CentOS 6.7
1. リソースの制約条件
クラスタで管理するリソースには、下記のような制約条件を設定できる。
・リソースを起動するノードの選択方法
・リソースの起動順序
2. リソース間の制約条件の設定方法
(1) リソースを起動するノードの選択方法
# pcs constraint colocation add <res-id-1> with <res-id-2>
・リソース-2(res-id-2) と同じノードでリソース-1(res-id-1) を起動する。
(2) リソースの起動順序
# pcs constraint order <res-id-1> then <res-id-2>
・リソース-1(res-id-1) の後にリソース-2(res-id-2) を起動する。
(補足)
・リソースの数が多くなると、制約条件の管理が面倒になる。
・リソースグループを定義すると、制約条件の管理の手間を軽減できる。
3. リソースグループに適用される制約条件
・同じリソースグループのリソースは、同じノードで起動される。
・リソースグループの定義時に指定した順序でリソースが起動される。
・リソースグループの定義時に指定した逆順でリソースが停止される。
4. migration-threshold の設定
同一リソースの障害が何回発生した時にフェイルオーバーするかを指定できる。
リソースの失敗回数との比較結果により、対応方法が異なる。
・失敗回数が migration-threshold 未満: 当該リソースの再起動を実施
・失敗回数が migration-threshold 以上: フェイルオーバーを実施
(1) 設定
# pcs resource defaults migration-threshold=<count>
・デフォルト値: INFINITY (無限)
(2) 設定の確認
# pcs resource defaults
(3) 設定の削除
# pcs resource defaults migration-threshold=
AVG AntiVirus Free (on Windows)のバージョンアップ [Windows]
(ウイルス情報は、随時更新。)
特に問題はなかったが、以下の事象の発生によりバージョンアップすることになってしまった。
(非常に残念である。)
1. AVG AntiVirus Free 2017 への自動更新
[2017-08-10]
ウイルス情報の更新時に、AVG AntiVirus Free が自動更新された。
・バージョンは未確認である。
・AVG Zen が同時にインストールされる。
[2017-08-13]
最終的には、AVG AntiVirus Free 2017 (17.5.3022) に自動更新された。
2. AVG AntiVirus Free 2014 の再インストール
AVG AntiVirus Free 2014 の再インストールを試みたが、できなかった。
[2017-08-15]
AVG AntiVirus Free 2014 の再インストール
・サポートを終了したソフトと認識され、インストールできない。
・代わりに、AVG AntiVirus Free 2017 がネット経由でインストールされる。
3. AVG AntiVirus Free 2016 のインストール
AVG AntiVirus Free 2017 が使いづらいため、バージョンダウンを行った。
[2017-08-17]
AVG AntiVirus Free 2016 そのものには大きな問題はない。
ただし、最終的には、AVG AntiVirus Free 2017 に自動更新されてしまう。
4. AVG AntiVirus Free 2015 のインストール
下記の理由から実施していない。
・いずれ AVG AntiVirus Free 2017 に自動更新されると思われる。
5. AVG AntiVirus Free 2017 の使用感
下記の機能が削除(または他機能へリプレース)されたため、現時点では使いづらい。
・[高度な設定] ... 詳細項目の設定
・[レポート]、[履歴] ... 実行履歴(開始終了時刻/実行結果)の表示
Debian 9の'systemctl list-unit-files'の色表示がおかしい [Debian]
systemd 232-25
1. 発生事象
'systemctl list-unit-files' の色表示がおかしい。
・状態の表示部分のみでなく、行全体が色付けされる。
・最終行で使用された色が画面の前景色となってしまう。
(補足)
Debian 8 (systemd 215-17+deb8u7) では発生しない。
2. 対処方法
(1) 上記事象の発生時に対応する場合
reset コマンドを実行する。
(2) 上記事象を発生させたくない場合
下記の内容で /usr/local/bin/systemctl を作成し、このスクリプトを使用する。
または、出力行数に関係なくページャーを使用(ページャーにパイプ連携)する。
#!/bin/bash # # patch for 'systemctl list-unit-files' (on Debian 9) # - turn off colors # - disable underline # # target version: systemd 232-25 # /bin/systemctl "$@" | cat exit "${PIPESTATUS[0]}"
GNOME-3からMATEへの移行 [CentOS]
以下は、必要最小限のパッケージのみをインストールする方針で実施した手順である。
(正常に動作はするが、ワーニング・メッセージが出力される場合がある。)
# ソフトウェアのバージョン
・GNOME 3.14
・MATE 1.16
1. GNOME のアン・インストール
# yum remove gnome-* ... (注1) # rpm -qa | grep gnome # rpm -e <GNOME 関連のパッケージ> ... (注2)
(注1)
依存関係により、必要なパッケージがアン・インストールされることがある。
今回は、下記のパッケージがアン・インストールされたため、後で再インストールする。
・fvwm
・xlockmore
・virt-manager (KVM がインストールされている場合)
(注2)
wireshark-gnome はアン・インストールしない。
2. アン・インストールされたパッケージの再インストール
3. mate-desktop のインストール
# yum --enablerepo=epel install mate-desktop.x86_64
4. MATE 用の追加パッケージのインストール
# yum --enablerepo=epel install mate-settings-daemon.x86_64 # yum --enablerepo=epel install mate-applets.x86_64 ... (注1) # yum --enablerepo=epel install mate-media.x86_64 ... (注2) # yum --enablerepo=epel install mozo.noarch # yum --enablerepo=epel install mate-icon-theme.noarch # yum --enablerepo=epel install mate-themes.noarch
(注1) パネルにごみ箱を表示するため。
(注2) パネルに音量調整ツールを表示するため。
5. セッションの開始コマンドの変更
~/.xinitrc、~/.Xclients 等を編集する。
(変更前) export GNOME_SHELL_SESSION_MODE=classic exec gnome-session --session=gnome-classic (変更後) exec mate-session