clamscanにファイルリストを渡す

■以下でPDFの検索に一回一回clamscanを呼び出していたけど。。。

 ClamAVのチェック時にエラーも取得した方が良いかも
 http://d.hatena.ne.jp/labunix/?of=1

■以下だけで良かった。当然こちらの方が上記のように呼び出すより圧倒的に速い。。。

$ sudo find . -type f -iname "*.pdf" -print > pdflist.log
$ clamscan -f pdflist.txt | pdflist_check_`date '+%Y%m%d'`.log
$ wc -l pdflist_check_`date '+%Y%m%d'`.log
463 pdflist_check_20121025.log
$ grep pdflist_check_`date '+%Y%m%d'`.log | -v "OK\$" SCAN SUMMARY
.win/pdf/Windows 8 Consumer Preview の ISO 形式.pdf: Empty file

----------- SCAN SUMMARY -----------
Known viruses: 1316725
Engine version: 0.97.6
Scanned directories: 0
Scanned files: 462
Infected files: 0
Data scanned: 2604.67 MB
Data read: 874.05 MB (ratio 2.98:1)
Time: 293.062 sec (4 m 53 s)

■ログにあるとおりに取得に失敗した空のファイルでした。

$ find . -type f -name "Windows\ 8*.pdf" -exec ls -l {} \; | \
  sed s/"`whoami`"/"username"/g
-rwx------ 1 username username 0 2012-04-25 20:03 ./mymedia/win/pdf/Windows 8 Consumer Preview の ISO 形式.pdf

■一つしかないので、念のため、「rm -i」で。

$ find . -type f -name "Windows\ 8*.pdf" -exec rm -i {} \;
rm: remove 通常の空ファイル ‘.win/pdf/Windows 8 Consumer Preview の ISO 形式.pdf’? y

■「マニュアルは読みましょう」ということですね。。。

$ man clamscan | grep -A 1 '\-f FILE'
       -f FILE, --file-list=FILE
              Scan files listed line by line in FILE.

■以下、「 > /dev/ull」を除くと、結果も見られます。
 オフィス文書はわざとらしく「置いてみました」という数ですが、気にせずに。。。
 別に拡張子を限定する必要は無いのですが。。。

■ワード「doc」「docx」

$ find . -type f -iname "*.doc*" -print | tee doclist.log > /dev/null
$ clamscan -f doclist.log  | grep -v "OK\$"

----------- SCAN SUMMARY -----------
Known viruses: 1316725
Engine version: 0.97.6
Scanned directories: 0
Scanned files: 10
Infected files: 0
Data scanned: 27.88 MB
Data read: 13.97 MB (ratio 1.99:1)
Time: 8.219 sec (0 m 8 s)

$ wc -l < doclist.log
10

■エクセル「xls」「xlsx」

$ find . -type f -iname "*.xls*" -print | tee xlslist.log > /dev/null
$ wc -l < xlslist.log ;clamscan -f xlslist.log | grep -v "OK\$"
4

----------- SCAN SUMMARY -----------
Known viruses: 1316725
Engine version: 0.97.6
Scanned directories: 0
Scanned files: 4
Infected files: 0
Data scanned: 0.45 MB
Data read: 0.25 MB (ratio 1.81:1)
Time: 4.698 sec (0 m 4 s)

■最後はEICAR付き「.zip」

$ find . -type f -iname "*.zip" -print | tee ziplist.log > /dev/null
$ wc -l < ziplist.log ;clamscan -f ziplist.log | grep -v "OK\$"
189
.samplevirus/eicar_com.zip: Eicar-Test-Signature FOUND

----------- SCAN SUMMARY -----------
Known viruses: 1316725
Engine version: 0.97.6
Scanned directories: 0
Scanned files: 189
Infected files: 1
Data scanned: 881.46 MB
Data read: 25607.52 MB (ratio 0.03:1)
Time: 187.713 sec (3 m 7 s)

■削除してもらう。

$ clamscan --remove=yes samplevirus/eicar_com.zip
myscripts/samplevirus/eicar_com.zip: Eicar-Test-Signature FOUND
myscripts/samplevirus/eicar_com.zip: Removed.

----------- SCAN SUMMARY -----------
Known viruses: 1316725
Engine version: 0.97.6
Scanned directories: 0
Scanned files: 1
Infected files: 1
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 4.622 sec (0 m 4 s)