アフィリエイト広告を利用しています
検索
<< 2024年11月 >>
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
最新記事
タグクラウド
カテゴリーアーカイブ
ファン
最新コメント
プロフィール
ゼロから始めるシステム開発さんの画像
ゼロから始めるシステム開発
 こんにちは!ナビゲータのEVEです。各種研究室を用意し、次期EVEシステムを製造しようと日々頑張っています。現在一番力を入れているのが、資金調達です。このブログもその一環ですので、ご協力いただければ嬉しいです。
プロフィール

2023年01月21日

ClamAVで定時ウイルスチェックを行う 〜バッチ製造〜 [ソフトウェア研究室]


 こんにちは!
 ナビゲータのEVEです。

 本日は、ClamAVで定時ウイルスチェックをするために、バッチ処理を作っていました。
本当に疲れた〜♪こんなに時間がかかるとは思っていませんでした。
 かなり、昔なのですが、バッチ処理を作ったことがあります。それは、Windows、Linux両方なのですが、そのときの印象が癖があるな〜っだったのですが、本日は、その癖の部分にやられました。

[バッチ処理製造の情報集め]
 まず、情報集めから始めました。かなり昔に作ったということもあり、なんとなくは覚えていますが、すぐに完成できるところまでは覚えていません。
 今回の処理は、以下の機能がほしいと思い作り始めました。

❶指定のフォルダをウイルスチェックをしてくれる。
❷ウイルスチェックした結果をログを残してくれる
 ・ログファイルは、日付ごとに分けて保存する
❸ウイルス感染したファイルを隔離してくれる
❹結果をメールで教えてくれる

以上です。以上の内容から以下の《参考サイト》を探し出し作り始めました。

[シェルを作成する]
 まず、どうやってシェルを作るんだっけな?っというところから始めています。
 Unixには、大きく分けて、Bシェル系Cシェル系と分けることができます。そのBシェル、Cシェルには以下の種類があります。

・shシェル
・bashシェル
・cshシェル
・tcshシェル
・kshシェル
・zshシェル

うっすらとした記憶の中に、昔、bourneシェルをいじったことがあるような気がしましたが、shシェルがそれらしいです?シェルの説明を見ていても訳が分からなくなるので、Bシェル系とCシェル系の2系統があるといったぐらいを覚えておけばいいと思います。

[シェルを作ってみたが???]
 今まで作ったことがあるshシェルで行こうと方針を決め作り始めました。流れとしては、以下のような感じです。

@shシェルを製造する(上記の❶〜❹までの機能有する)
A実行権を与える

 流れとしては、2ステップしかないので、簡単に製造できました。そこで、SSHの画面から実行!但し、動かない・・・。なぜ・・・?
 エラーメッセージは、「コマンドが見つかりません」と表示されます。忘れていましたが、バッチプログラムの前に、コマンド(シェル名?)をつけてやらなくてはいけません。思いだし、コマンドをつけてバッチ処理を実行!動かない?なぜ???

[if文がうまくいかない?]
 if文をバッチ処理に入れると、「予期しないファイル終了」というエラーメッセージが表示されます。いろいろやってみますが分かりません。結局なんでif文を入れるとエラーになるのかは分からなかったのですが、多分ですが、目に見えない文字コードが混在したためだと思います。
 今回のバッチ処理製造は、当初WinSCPから当該バッチファイルをクリックし、秀丸で編集していました。多分それがいけなかったと思っています。
 そうあたりをつけてから、やったことは、新規にviでバッチ処理を作り始めました。今まで、秀丸で書いたロジックをすべてviで打ちなおしただけなのですが、これでうまくいきました。このエラーの対応がとりあえず時間がかかりました。

[日付の取扱]
 今回のバッチ処理は日付が重要な役割を果たします。メールを送信するとき、ログファイルを作るときなど日付を用います。そのため、日付取得は必須なのですが、うまくいかない・・・。
 いろいろサイトを見て分かりましたが、変数にセットするとき、`(バッククォート)で囲まなくてはいけません。しかも出力するときは、{}(波カッコ)で囲ってやらないといけないようです。以前もこうだっけかな?っと首をかしげながら日付の問題は解決しました。

[メールでもエラーが・・・]
 if文の問題が解決後は思った動作はしたのですが、警告レベルですが問題がありました。

1)toに変な文字列が併記される。
2)メールが暗号化されない

 1)については、タイトルにスペースが入ると、そのスペース区切りでtoにアドレスとして設定されてしまうようです。
 2)については、調べていますが、障害として解消しない可能性があります。調べ続けますが、暗号化しなくても問題ない内容なので、放置するかもしれません。

[作業を終えて]
 疲れた・・・。今後ですが、viでバッチ処理を作ることにします。

 そうそう、話は変わりますが、GoogleAdsenceから審査のメールが来ました、未承認でした。

・パブリッシャーのコンテンツを含まない画面における Google が配信する広告の扱い
・有用性の低いコンテンツ

多分ですが、トップ画面をさしていると思われます。Googleだって、トップ画面はコンテンツないじゃん?っと思ったりしますが、他にも理由があるかもしれないので、ちょっと、ポリシー等をよく読んで対応します。
 今度申請できるのは、3月7日以降です。ナガ!仕方がないか・・・。他にもやることあるし・・・。

 では、また!

《参考サイト》
■【Ubuntu 20.04/18.04 LTS Server】ClamAVで定期的にウイルスチェックし、メール通知する
https://www.yokoweb.net/2017/04/15/ubuntu-server-clamav/

■シェルスクリプトに挑戦しよう(4)変数の定義と参照
https://atmarkit.itmedia.co.jp/ait/articles/1810/03/news001.html

■日時をファイル名に付けるには(@IT)
https://atmarkit.itmedia.co.jp/flinux/rensai/linuxtips/240datefilename.html


■バッチファイルからメールを送信する
https://qiita.com/shuntaro_tamura/items/40a7d9b4400f31ec0923

この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/11826484
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック