Linuxで使われているセキュリティーソフトウェアとして、Clam AntiVirus(通称Clam AV)というものがあり、その中でもコマンドラインでウィルススキャンを行うコマンドとしてclamscan
とclamdscan
というものが用意されているが、それぞれ大きな違いがある。ここではそこに着目して説明を行いたい。
clamscanは実行時に初期化される
まず、clamscan
についてだが、こちらは通常のコマンドラインスキャンであり、実行時はまずウィルス定義ファイルをロードしてからウィルススキャンを行う。
これは、実行するまでの間はマシンのリソースを食わないという利点があるが、実行時に定義ファイルの読み込みを行うという必要性があるため、動作に時間がかかるという問題がある。
これはファイルサイズにもよるが、比較的低い頻度のcron
で定期スキャンを行うのであれば、必要な時にclamのリソースを使う利点があるため、こちらを使ったほうが良いだろう。
ただし、一つのファイルをスキャンするだけでも環境によっては10秒以上はかかるため、ファイルを受け取ったらスキャンするという用途には使えない。
clamdscanはデーモンに処理を移譲する
次にclamdscan
だが、こちらはclamdと呼ばれるデーモン ((Unix/Linuxなどの環境における常駐プロセス。Windowsにおける「サービス」に相当する)) を利用してスキャンを行うツールである。
処理自体はclamscan
とほとんど変わらないが、こちらはすでに定義ファイルを読み込み済みのclamdに処理を移譲する関係上、すぐにスキャンを行えるという利点がある。従って、ファイルを受け取ったらスキャンするという用途でもファイルにもよるものの、概ね対応可能という利点がある。
一方で、clamdを常駐させる必要がるため、その分のリソースの消費が必要になるという点は要注意である。
最後に
今回はclamscan
とclamdscan
の違いについてまとめてみた。どちらも行えることは一緒だが、その中身はかなり違ったものになっているので要注意である。
Unix/Linux系はウィルスに感染するリスクが低いと言われているが、サーバー運用では他のPCを感染させてしまうこともあるので、ぜひともウィルス対策は行いたいところである。
ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。主にスマートフォン向けアプリやウェブアプリの開発を携わっています。ご用の方はコメントかコンタクトフォームにて。