こんにちは!
ナビゲータの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
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image