Clam Daemon(8)
Clam AntiVirus
NAME
clamd - an anti-virus daemon
SYNOPSIS
clamd [options]
DESCRIPTION
Unix ソケットまたは TCP ソケットで受信接続を待ち受けるデーモンです。
ファイルまたはディレクトリのスキャンを実行します。
clamd は /etc/clamav/clamd.conf
から設定を読み込みます。
COMMANDS
コマンドが null 文字で区切られ、 clamd が null 文字を読み取るまで
コマンドデータを読み取り続けることを示すために、
clamd コマンドの前に文字 z
(例: zSCAN
) を付けることをお勧めします。
null 区切り文字はコマンドの完遂と、
引数全体が単一のコマンドとして処理されることを保証します。
あるいは、コマンドの前に文字 n
を付けて(例: nSCAN
)、
改行文字を区切り文字として使用することもできます。
clamd はリクエストの終了順に応答を返します。
clamd がコマンドを認識しない場合、
またはコマンドが以下に指定された要件に従っていない場合、
clamd はエラーメッセージを返してコネクションを閉じます。
clamd は以下のコマンドを認識します:
PING
サーバーの状態を確認します。
応答として PONG
を返します。
VERSION
プログラムとデータベースのバージョンを出力します。
RELOAD
ウィルスデータベースを再読込します。
SHUTDOWN
終了を実行します。
SCAN file/directory
ファイルまたはディレクトリを(再帰的に)スキャンします。
(clamd.conf
で無効になっていない場合)アーカイブサポートは有効です。
完全なパスが要求されます。
CONTSCAN file/directory
ファイルまたはディレクトリを(再帰的に)スキャンします。
アーカイブサポートは有効です。
ウィルスが検出された場合でもスキャンを継続します。
MULTISCAN file/directory
ファイルを標準の方法でスキャンまたは
(SMP マシン上でスキャンを高速化する為に)
マルチスレッドを使用してディレクトリを(再帰的に)
スキャンします。
ALLMATCHSCAN file/directory
ALLMATCHSCAN は、ファイル内で一致が見つかった後も
スキャンを続行するモードを設定することを除いて、
SCAN と同様の動作を実行します。
INSTREAM
コマンドの接頭辞 n
または z
を必須とします。
データのストリームをスキャンします。
ストリームは、コマンドが送信されたのと同じソケット上で、
INSTREAM の後にチャンク単位で clamd へ送信されます。
これにより、新しい TCP 接続を確立する際のオーバーヘッドと
NAT の問題が回避されます。
チャンクの形式:
<length><data>
<length>
は後に続く <data>
のサイズ(バイト単位)を、
ネットワークバイトオーダーの 4 バイト符号なし整数として表します。
<data>
は実際のチャンクです。
ストリーミングは 0 長のチャンク送信によって終了します。
Note:
clamd.conf
で定義した StreamMaxLength
を超えないようにしてください。
超えてしまった場合、 clamd は応答として
INSTREAM サイズ制限超過を返してコネクションを閉じます。
FILDES
このコマンドは必ず改行で終了するか、
接頭辞 n
または z
を付けてください。
このコマンドは UNIX ドメインソケット上でのみ機能します。
ファイル記述子をスキャンします。
FILDES コマンドを発行した後、
後続の rfc2292/bsd4.4 スタイルのパケット
(少なくとも 1 つのダミー文字を含む)が
clamd に送信され、補助データ内で
スキャンされるファイル記述子が運ばれます。
あるいは、追加文字を含むファイル記述子を
同じパケットで送信することもできます。
STATS
このコマンドは必ず改行で終了するか、
接頭辞 n
または z
を付けてください。
接頭辞 z
の使用のみを推奨します。
キューのスキャン、キューのスキャン内容、
メモリー使用量についての統計を応答として返します。
正確な返信形式は将来のリリースで
変更される可能性があります。
IDSESSION, END
このコマンドは必ず改行で終了するか、
接頭辞 n
または z
を付けてください。
IDSESSION 内の全コマンドに接頭辞が必須となります。
clamd セッションを開始/終了します。
セッション内の複数のコマンド(下記のコマンド)は
新しいコネクションを開くことなく
同じソケット上で送信することができます。
clamd からの応答は <id>: <response>
の形式で返されます。
<id>
はリクエスト番号(アスキー文字。 1
から開始)、
<response>
は通常の clamd の応答です。
応答行の区切り文字は、コマンドで使用されている区切り文字と同じです。
clamd はコマンドを非同期的に処理し、処理が終わり次第応答を返します。
clamd は send()
のデッドロックを防ぐために
追加でコマンドを送信する前に、
clamd が送信した全返信の読取りを
クライアントへ要求します。
IDSESSION を使用するクライアントを実装する推奨方法は、
非ブロッキングソケットと select()/poll()
ループを使用することです。
送信がブロックされるたびに、さらにデータを書き込むか、
さらに応答を読み取ることができるまで、
select/poll
でスリープします。
select/poll
ループを使用しない非ブロッキングソケットの使用と、
recv()/send()
の代替使用は、clamd の要求仕様に反します。
clamd がクライアントの持つデッドロックを検出した場合、
コネクションを終了します。
ユーザーがプロトコル要求仕様に従わない場合も、
clamd は IDSESSION コネクションを終了します。
クライアントは PING コマンドを
コネクションの確立の為に使用することができます。
VERSIONCOMMANDS
このコマンドは必ず接頭辞 n
または z
を付けてください。
nVERSIONCOMMANDS
の使用を推奨します。
プログラムとデータベースのバージョンを出力し、
その後に | COMMANDS:
と、スペースで区切られた
サポートされているコマンドのリストを出力します。
clamd < 0.95 はこのコマンドを VERSION コマンドとして認識し、
バージョンのみを出力します。
コマンドリストは出力しません。
このコマンドは、例えば IDSESSION のサポートを確認する
簡単な方法として使用できます。
DEPRECATED COMMANDS
STREAM
ストリームをスキャンします。
このコマンドでは clamd は、ユーザーが接続して
スキャン対象とするデータを送信すべき
PORT number
を返します。
(非推奨です。 INSTREAM を代わりに使用してください)
NOT SUPPORTED COMMANDS
SESSION, END
TCP セッション毎に複数のコマンド実行を許可する
clamd セッションを開始/終了します。
(代わりに IDSESSION を使用してください)
OPTIONS
-h, --help
ヘルプ情報を出力して終了します。
-V, --version
バージョン番号を出力して終了します。
-F, --foreground
フォアグラウンドで実行します。
デーモン化しません。
--debug
デバッグモードを有効化します。
-c FILE, --config-file=FILE
設定を FILE
から読み込みます。
ENVIRONMENT VARIABLES
clamd は以下の環境変数を使用します:
LD_LIBRARY_PATH
起動時に libclamunrar_iface
共有ライブラリモジュールを検索して、
RAR アーカイブサポートを有効にするために使用できます。
SIGNALS
clamd は以下のシグナルを認識します:
SIGHUP
ログファイルを再度開きます。
SIGUSR2
シグネチャーデータベースを再読込します。
SIGTERM
クリーンな終了を実行します。
FILES
/etc/clamav/clamd.conf
SEE ALSO
- clamd.conf(5)
- clamdscan(1)
- freshclam(1)
- freshclam.conf(5)
- clamav-milter(8)