あまつぶ

7.28【ウィルススキャンもコマンドラインで】

 前回紹介したVirexの続き。
 /usr/local/vscanxフォルダを見ると、vscanxというファイルがある。これを使うと、コマンドラインでウィルススキャンを行うことができる。GUIのアプリケーションでするよりも細かい設定ができるし、また、複雑なスケジュールを組むこともできるようだ(スケジューリング自体はVirexの機能というわけではないが)。ということで、早速挑戦してみる。
 参考にするものは、Virexについてくるドキュメント(Virex 7.1 Product Guide.pdf)と、Terminalで/usr/local/vscanx/vscanx --helpとした結果。ドキュメントには、それぞれのオプションの使い方やスケジュールの組み方まで一通りが説明されているので、読んでおくといいと思う。
 まず、簡単なスキャンから。単に、あるフォルダやファイルのウィルススキャンをしたい場合、「/usr/local/vscanx/vscanx フォルダ/ファイル」だけでいい。結果の概要を表示したければ--summary、スキャンするファイルの1つ1つを表示させたければ-v、サブフォルダもスキャンしたければ-rを使う。また、圧縮ファイルをスキャンしたい場合は-uと。例えば、ホームフォルダ以下を、圧縮ファイルを含めてスキャンして、その結果だけを表示する……という場合なら、「/usr/local/vscanx/vscanx --summary -ru ~」という感じになる。結果は、通常はTerminalのウィンドウに表示されるけど、リダイレクトを使えばファイルに保存しておくということも可能だ。
スキャンするフォルダ/ファイルは、--fileオプションを使用することによって複数一度に指定することができる。スキャンしたいフォルダ/ファイルを改行(LF)区切りでいくつか登録したファイルを作成しておいて、このファイルを--fileオプションで指定する。よくスキャンするフォルダがある場合は、これを使用するとよさそうだ。
 スキャンはバックグラウンドで行われるので、そのまま操作していても特に気にならない。スピードは、GUIのアプリケーションより速いんじゃないかな。ダウンロードしたファイルなどを置いているフォルダに定期的にスキャンをかけるようにしておくとよさそうな感じ。
 定期的に走らせるなら、これも自動化するのがいい。ドキュメントにも書かれているけど、自動化をするには、cronというスケジューラを使う。詳しくはcronとcrontabのマニュアルを見てもらうとして、ここでは簡単な使い方を紹介。まず、スケジュールに登録するデータを定義したファイルを作成しておく必要がある。例えば、こんな感じ。

 virexcron
30 23 * * 6 /usr/local/vscanx/vscanx --summary -r ~/Documents > ~/work/virex.log

 毎週土曜日の23時30分に、~/Documentsフォルダ以下をスキャンして、その結果を~/work/virex.logに保存する、というスケジュール。まず、最初の2つが時間(分、時)をあらわすようだ。その次の2つはどの例でも*だったのでなにをあらわすのかわからないが、日付けとかかなぁ。その次の6は、土曜日をあらわす。0が日曜日で、1-5と書けば平日を指定できる。あとは、実行するコマンドを書く。
 作成したファイルを登録するためには、crontabというコマンドを使用する。「crontab -l」で、現在登録されているスケジュールの一覧を確認することができる。登録は、「crontab ファイル名」でokだ。スケジュールを削除する場合は、「crontab -r」とする。確認のメッセージが現れるので、「y」を入力。

 一つ気がついたこと。Virexでは、圧縮ファイルの中身をスキャンすることができるが、ディスクイメージファイルの中身はスキャンしてくれない。ということは、ディスクイメージをマウントすると自動的に実行されるウィルスなどが出てきた場合に対応できない可能性があるんじゃないだろうか。ちょっと気になるところだ。

 もう一つコマンドラインの話。iDiskをコマンドラインでマウントする方法について。
 mount_webdavコマンドを使えば、iDiskのディスクをマウントすることができる。具体的には、

 iDiskのマウント
% mkdir /Volumes/mntpnt
% mount_webdav idisk.mac.com/membername/ /Volumes/mntpnt/

こんな感じ。マウントする場所(mount point)を指定する必要があるため、先に使用するフォルダを作成しておく。そして、mount_webdavでマウントする(membernameは、メンバー名を指定)。すると、ユーザIDとパスワードを入力するダイアログがあらわれ、正しく入力すればマウントされる(ちょっと時間がかかるようだ)。マウント後は、Finderなどで普通に使うこともできるし、「cp ... /Volumes/mntpnt/Sites/」などとすれば、ファイルをコピーすることができる。
 また、-aオプションを使えば、IDとパスワードの入力を省略することができるようだ。この機能はまだ試してみていないが、うまく使えば、前に作ったスクリプトと組み合わせて、圧縮〜アップロードを全て自動で行うことができるかもしれない。ちょっと重いのが難点だけど。

 WebColorX 1.0(すでに1.0.1になっているけど)とFireworks 0.2(これもすでに0.3.0)をリリース。WebColorXは、ログイン時に起動するオプションがうまく動かないことがあるバグを修正。1.0.1では、カラーピッカーが何枚も出てきてしまう問題を修正。とりあえず、これで完成のつもり。
 Fireworksは、描画にOpenGLを使って全面的に書き換え。Cocoaでの描画もわからないことだらけだったが、OpenGLもさっぱりわからない。サンプルコードや、ソースの公開されているOpenGLを利用したスクリーンセーバを参考にして、なんとか動くようになった。前のバージョンに比べると細部の表現力は落ちたが、スピードは雲泥の差だ。
 スピードが上がれば、同時にあがる花火の数を増やすことができるし、それぞれの花火の星の数を増やすこともできる。そうすると、結果的に前よりも見栄えがするようになった。なるほど、細かいところにこだわるよりも、たくさん同時に動かす方がきれいに見えるのだなぁ。
 0.3.0では、花火の種類を増やしてみた。また、星の消え方を少し工夫して、多少はそれらしくなってきたような気がする。あとは変化をつけたら一応完成の予定。あとは、ぼちぼちと思い付いたときに種類を増やしていく感じかな。

 Fireworksを初代G3 233MHzで動かしてみたところ、妙に遅いことがわかった。プレビューで見ると遅くないし、花火の数を増やしてもスピードは変わらない。ということは、おそらく、画面をクリアするところがボトルネックになっているのではないかと思うが、ちょっと不思議。

 夏の高校野球、そろそろ代表校が決まって来ているみたい。こっちも気になるところ。
July 20, 2002 ↑ 2002 index → August 3, 2002

あまつぶ >> あまつぶ >> July 28, 2002