名前

ClamdOmitScan.pl - 定期スキャン用高速アンチウィルススキャナー


使用方法

ClamdOmitScan.pl [options] [file/directory ...]

ClamdOmitScan.pl --maintain-scan-data [options]

ClamdOmitScan.pl --help|-h

ClamdOmitScan.pl --version|-V


説明

ClamdOmitScan.pl は定期スキャン用高速アンチウィルススキャナーです。

file または directory が省略されると、ClamdOmitScan.pl はカレントディレクトリをスキャンします。

ClamdOmitScan.pl は clamdscan のように clamd を用いてファイルやディレクトリをスキャンしますが、clamscan のように振る舞います。clamdscan と clamscan に実装されている全てのオプションを受け付けるようになっています。clamdscan のようにほとんどの clamscan オプションは無視されますが、clamdscan よりも多くのオプションを利用します。

更に、ClamdOmitScan.pl は一度スキャンしたファイルやディレクトリを高速にスキャンします。それはスキャンする必要がないファイルのスキャンを省略するからです。

clamdscan はリモートの clamd に接続することができませんが、ClamdOmitScan.pl は接続できます。LAN でアンチウィルススキャンサーバを使用できるのです。そのために ClamdOmitScan.pl を使用するそれぞれのクライアントに ClamAV をインストールする必要はありません。

注意: clamscan は標準入力のスキャンをサポートしていますが ClamdOmitScan.pl はサポートしていません。


スキャンの必要性とは

ClamdOmitScan.pl はファイルをスキャンする前に次の条件を調べます。

C1. ファイルタイムスタンプ条件
そのファイルが最後にスキャンしたときよりも後に更新または作成された。
C2. スキャナーバージョン条件
現在の ClamAV のバージョンとそのファイルを最後にスキャンしたバージョンが異なる。
C3. 検査期間条件
そのファイルを最後にスキャンしたときの ClamAV のタイムスタンプよりもそのファイルのタイムスタンプが十分に古くはない。

C1 または (C2 かつ C3) のとき、そのときに限ってそのファイルをスキャンする必要があります。

注意: C3 の充分な期間のデフォルトは四週間です。 --period オプションを参照してください。


INET ソケット

ClamdOmitScan.pl は次のケースで INET ソケットを使用します。


STREAM CLAMD コマンド

ClamdOmitScan.pl は次のケースで STREAM clamd コマンドを使用します。


オプション

オリジナルオプション

--maintain-scan-data
スキャンデータの保守。このオプションが指定されると ClamdOmitScan.pl はスキャンをしません。
--data directory | --data=directory
スキャンデータディレクトリのパス。もし存在しなければ directorydirectory.lock が作成されます。

デフォルト: ~/.ClamdOmmitScan

--lock
スキャンデータのロックに排他的ロックを使用します。これが指定されない場合は、ClamdOmmitSca.pl は共有ロックを使用します。flock(2) を参照してください。
--period seconds | --period=seconds
ファイルスキャン期間。「スキャンの必要性とは」を参照してください。

デフォルト: 2419200 (4 週間)

--socket path
clamd の UNIX ドメインソケットのパス。このオプションが指定されると ClamdOmitScan.pl は UNIX ドメインソケットを使用して clamd に接続します。

このオプションが指定されていないとき、clamd.conf に書かれている LocalSocket の値を用います。

デフォルト: /tmp/clamd.socket

--port port | --port=port
clamd の INET ソケット(ポート番号)。ClamdOmmitSca.pl が INET ソケットを用いて clamd に接続するとき、port をポート番号として使用します。

このオプションを指定していないとき、clamd.conf に書かれている TCPSocket の値を用います。

デフォルト: (なし)

--host address | --host=address
clamd サーバアドレス。

このオプションを指定していないとき、clamd.conf に書かれている TCPAddr の値を用います。

デフォルト: 127.0.0.1

--stream-max-length length | --stream-max-length=length
clamd.conf(5) の StreamMaxLength の項を参照してください。

このオプションを指定していないとき、clamd.conf に書かれている StreamMaxLength の値を用います。

警告: length が clamd が実際に使用している値よりも大きいと、 ClamdOmmitSca.pl が唐突に落ちることがあります。それは次のようなケースです。

STREAM CLAMD コマンド」を参照してください。

デフォルト: 10M

--no-warn-unsupported
サポートしていない clamscan のオプションが指定されるとデフォルトでは ClamdOmmitSca.pl は警告を出力します。このオプションを指定するとその警告が抑制されます。
--error-unsupported
サポートしていない clamscan のオプションが指定されるとデフォルトでは ClamdOmmitSca.pl は警告を出力します。このオプションを指定すると警告ではなくエラーとなります。
--timeout seconds | --timeout=seconds
clamd 接続タイムアウト。

デフォルト: 10

--scan-timeout seconds | --scan-timeout=seconds
1MB 当りのスキャンタイムアウト。

デフォルト: 40

--bufsiz length | --bufsiz=length
ファイルの読み書きのバッファーのサイズ。ClamdOmmitSca.pl が STREAM clamd コマンドを使用しているか感染ファイルをコピーするときにこの値を使用します。

デフォルト: 4096

--no-contscan
このオプションが指定されると、ClamdOmmitSca.plCONTSCAN clamd コマンドの代わりに SCAN コマンドを使用します。clamd(8) の SCAN の項CONTSCAN の項を参照してください。
--perm-root octet | --perm-root=octet
スキャンデータのルートディレクトリのパーミッション。

デフォルト: 0700

--perm-dir octet | --perm-dir=octet
スキャンデータの中のディレクトリのパーミッション。

デフォルト: 0700

--perm-file octet | --perm-file=octet
スキャンデータの中のファイルのパーミッション。

デフォルト: 0600

--perm-lock octet | --perm-lock=octet
スキャンデータのロックファイルのパーミッション。

デフォルト: 0600

--limit-timeout num | --limit-timeout=num
連続タイムアウト回数制限。clamd タイムアウトが連続して num+1 回以上起きたとき、num が 0 以上ならば ClamdOmitScan.pl が停止します。

clamd が正常に動作しているのにこの制限で ClamdOmitScan.pl が停止するときは、--timeout--scan-timeout の値を増やしてください。

デフォルト: 3

--scan-rsrc
HFS ファイルシステム上の各ファイルのリソースフォークをスキャンします。

このオプションには perl モジュール Sys::Filesystem が必要です。

デフォルト: (no)

CLAMDSCAN オプション

clamdscan の全てのオプションが有効です。詳細は clamdscan(1) を参照してください。

CLAMSCAN オプション

次の clamscan のオプションが有効です。

--recursive | -r
--max-dir-recursion
--exclude pattern | --exclude=pattern
--exclude-dir pattern | --exclude-dir=pattern
--include pattern | --include=pattern
--include-dir pattern | --include-dir=pattern
--infected
--copy directory | --copy=directory
--bell

詳細は clamscan(1) を参照してください。


(0) 単一のファイルをスキャンする:
ClamdOmitScan.pl file
(1) カレントディレクトリをスキャンする:
ClamOmitScan.pl
(2) /home の全てのファイル(とサブディレクトリ)をスキャンする:
ClamOmitScan.pl -r /home
(3) カスタムのスキャンデータディレクトリを指定する:
ClamOmitScan.pl --data=/var/ClamdOmitScan/scanData
(4) カスタムのスキャンデータディレクトリを保守する:
ClamOmitScan.pl --data=/var/ClamdOmitScan/scanData --maintain-scan-data

終了ステータス

0: ウィルスなし。

1: ウィルス発見。

2: エラー発生。

40: 未知のオプション。

41: 間違ったオプションの値。

42: 間違った引数。

43: サポートされないオプション。

50: スキャンでエラー。

51: スキャンデータの保守でエラー。


参照

clamd(8), clamdscan(1), clamscan(1), flock(2), clamd.conf(5), Sys::Filesystem


作者

OKAMURA Yuji <https://sourceforge.jp/users/okamura/>