RasPiのログをGmailにして送る(Bookworm)
Back
Alt+HOME
前回、Postfixを使用した平文のメールや、sendemailを用いたテキストファイル添付のものを送信するスクリプトを掲載しました。ところがRaspberryをBookwormに新規インストールして同様にsendemailのスクリプトを動かそうとしたのですが、うまく行きませんでした。そこで違うコマンドを探しやり直してみました。
ログデータ収集に関するスクリプトは、
獨協医科大学D-STARリピータ管理者
髙田様よりご提供戴いたスクリプトを
使用させて戴きました。
複数のログファイルから必要な行数を取り出し一つのファイルを作成
- メールとして送信する内容のファイルを作成するスクリプト
$ sudo nano gatewaylog
GNU nano 5.4 gatewaylog
#!/bin/bash
## 各ログファイル最新の20行を読み取ってhomeディレクトリにファイルを作成
echo [rpi-dsgwd.log] >> /home/user/DSTARLOG
tail -n20 /var/log/rpi-dsgwd.log >> /home/user/DSTARLOG
echo [rpi-xchange.log] >> /home/user/DSTARLOG
tail -n20 /var/log/rpi-xchange.log >> /home/user/DSTARLOG
echo [rpi-dprs.log] >> /home/user/DSTARLOG
tail -n20 /var/log/rpi-dprs.log >> /home/user/DSTARLOG
echo [rpi-dstatus.log] >> /home/user/DSTARLOG
tail -n20 /var/log/rpi-dstatus.log >> /home/user/DSTARLOG
echo [rpi-multi_forward.log] >> /home/user/DSTARLOG
tail -n20 /var/log/rpi-multi_forward.log >> /home/user/DSTARLOG
echo [rpi-decho.log] >> /home/user/DSTARLOG
tail -n20 /var/log/rpi-decho.log >> /home/user/DSTARLOG
- /var/log フォルダに保存されている各ログファイルから tail コマンドで -n20 つまり20行ずつ取得し、次々に /home/user
のファイル DSTARLOG に書き加えていきます。
ここまでスクリプトが書けたら一度保存します。
- ファイルの属性を変更して起動できるようにします。
$ sudo chmod +x gatewaylog
- コマンドとしてパスの通っている /usr/local/bin へ移動します。
$ sudo mv gatewaylog /usr/local/bin
- コマンドを実行してみます。
$ gatewaylog
$ ls
DSTARLOG
ホームディレクトリを一覧してみると、ログを集めたファイルが出来ているのが確認できると思います。
メールソフト導入の前にGoogleのアプリパスワードを入手する
- Google アカウントへ移行します。
- 左ペインメニューに有る「セキュリティ」をクリックします。
- 図のように、2段階認証プロセスが>オン になっていれば、
> をクリックします。
- グーグルの該当するメールアドレスに対するパスワードを入力します。
- 最下部に下図のような[アプリ パスワード]が表示されます。
- [App name ]に適当なアプリの名前(今回ならばGatewayLog等)を付けたら[作成]をクリックします。
図のような16桁のパスワードが発行されます。
このパスワードは、いつでも削除したり、生成したり出来ます。
注意点は使用中のパスワードを削除すると、そのパスワードを設定したアプリが使えなくなります。
パスワードの流出には十分な注意を払ってください
なお実際のアプリに設定する時は zzsfsjtphvditmiz のようにスペースを省きます。
因みに、このパスワードは既に破棄しました^^;
テキストファイルを添付したメールを送る
- アプリパスワードの取得は終わっているものとします。
まだの場合は前述のメールソフト導入の前にGoogleのアプリパスワードを入手するをご覧ください。
- 次のアプリケーションをインストールします。
$ sudo apt install s-nail
- 自分のSMTPアカウントに関して前もって[ユーザID]や[パスワード]をエンコードしておく必要が有ります。
$ echo 'urlcodec enc abcde@gmail.com' | s-nail -#
abcde%40gmail.com
パスワードも同様ですが、今回のものは zzsfsjtphvditmiz ですので記号を含まずエンコードの必要は有りません。
- スクリプトは次のように成ります。設定ファイルを別途設ける事も出来ますが、スクリプトの中でgmailサーバのアカウントやメールの設定を行いました。
$ sudo nano /usr/local/bin/gatewaylog
GNU nano 5.4 /usr/local/bin/gatewaylog
#!/bin/bash
#////////////////////////////////////////////////////////////////
# 最新ログをまとめGmailサーバを中継してメールする
#////////////////////////////////////////////////////////////////
## 各ログファイル最新行を読み取ってhomeディレクトリにファイルを作成
FILENAME=/home/opendv/DSTARLOG
echo [rpi-dsgwd.log] >> $FILENAME
tail -n20 /var/log/rpi-dsgwd.log >> $FILENAME
echo '' >> $FILENAME
echo [rpi-xchange.log] >> $FILENAME
tail -n20 /var/log/rpi-xchange.log >> $FILENAME
echo '' >> $FILENAME
echo [rpi-dprs.log] >> $FILENAME
tail -n20 /var/log/rpi-dprs.log >> $FILENAME
echo '' >> $FILENAME
echo [rpi-dstatus.log] >> $FILENAME
tail -n20 /var/log/rpi-dstatus.log >> $FILENAME
echo '' >> $FILENAME
echo [rpi-multi_forward.log] >> $FILENAME
tail -n20 /var/log/rpi-multi_forward.log >> $FILENAME
echo '' >> $FILENAME
echo [rpi-decho.log] >> $FILENAME
tail -n20 /var/log/rpi-decho.log >> $FILENAME
## メールヘッダーの作成
MAILTO=abcde@gmail.com
# テキストファイルの添付
MESSAGE="添付ファイル: DSTARLOG"
ATTACHED=/home/opendv/DSTARLOG
## メール送信
echo ${MESSAGE} | s-nail -:/ -s "D-STAR Rpi-Gateway Log" -a ${ATTACHED} \
-S v15-compat \
-S mta=smtp://abcde%40gmail.com:zzsfsjtphvditmiz@smtp.gmail.com:587 \
-S smtp-use-starttls \
-S from=je3hcz@gmail.com ${MAILTO}
## トランザクションファイルを削除
rm -f $FILENAME
メール送信コマンドの[\]は、Raspberryでは[\]になります。単に長いコマンドラインを改行ではなく、行を変えて接続します。
又、[-S]の部分が別途設定ファイルを設けた時に set v15-compat のように記述される部分です。
- スクリプトを初めて保存した場合は起動可能ファイルにしてください。
$ sudo chmod +x /usr/local/bin/gatewaylog
毎日定時に報告メールが届くようにします。
- crondによって定時にコマンドが実行されるようにします。
$ sudo nano /etc/crontab
GNU nano 5.4 /etc/crontab
#
00 6 * * * user gatewaylog
午前6時にユーザ名 user の権限にてコマンドgatewaylogが実行され、テストどおりに送信されるはずです。
- crontabを保存したら、cronに設定を認識させます。
$ sudo systemctl restart cron
以上で明日の朝からゲートウェイPCのアプリケーション状況が通達されるように成ります。
Back
Alt+HOME
この 作品 は
クリエイティブ・コモンズ 表示 - 非営利 - 改変禁止 4.0 国際 ライセンス
の下に提供されています。
English
Powered by