Cron

OP25Bの忘れ物

前々から…と言いいつつ、いつか思い出せないほど昔から気になりつつも後回しにしていた、宅内のGT110bサーバからのメールが届かない件。

3,987件ものメールが滞留していた!

秀丸メール

Cronなどのエラーメールやディスク容量が少なくなった時の警告など一切飛んでこないので気になっていたのだが、スマートメーターでの消費電力計測からメールを飛ばす必要があるので、色々調べていたところmail.bravotouring.comのSMTP(25/TCP)ポートに繋がらない事が判明。

VPSホスト側ではSMTP開いているし、ローカルでは繋がるんだけどな…って事で思い出した。

そうか、OP25Bか。

とわかれば話は早い。postfixの送信先(relayhost)をサブミッションポート(587/TCP)にする必要があると言う事だ。加えてSASL認証も必要になるので、 /etc/postfix/main.cf

relayhost = mail.bravotouring.com:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/smtp_pass smtp_sasl_security_options = noanonymous smtp_sasl_mechanism_filter = plain,login smtp_tls_security_level = may smtp_tls_loglevel = 1

を。SASL認証情報を /etc/postfix/smtp_pass

mail.bravotouring.com:587 {メールアカウント}:{パスワード}

を設定し、

root@GT110b:# chmod 600 /etc/postfix/smtp_pass root@GT110b:# postmap /etc/postfix/smtp_pass root@GT110b:# service postfix stop root@GT110b:# service postfix start

としたところ、まさに堰を切ったようにジャンジャン転送が始まって笑った。

結局、2014年以降の4,000件近くのメールが滞留していたので、秀丸メールで受信し終るまで2時間くらいかかったよ。2014年6月にUbuntu 10.04から14.04(Trusty Tahr)を入れ直したあと、全くメールが飛んでいなかった模様。

参照

untitled document http://neet.waterblue.net/

server-memo.net https://www.server-memo.net/

@IT https://www.atmarkit.co.jp/

So-net https://www.so-net.ne.jp/

BBIQ(ビビック)公式サイト https://www.bbiq.jp/

NVENC実戦配備

昨日、NVENCに対応したUbuntuでのハードウェアエンコード環境ができたので、溜まったtsファイルをエンコードしていくことに。

PT2とPT3の複数実装で録画は並列でできるものの、GPUエンコードは並列処理できないと思われるので予約録画の流れでエンコードさせる仕組みは見直し、録画スクリプトはtsファイルを/mnt/ts_pool/10_recordedに移動させたところで終了とする。

yano@GT110b:~$ ll /mnt/ts_pool/
total 76
drwxr-xr-x  6 yano family    97 Feb  3 22:00 ./
drwxr-xr-x 14 root root    4096 Dec  9 17:23 ../
drwxrwxrwx  2 yano family 49152 Feb  4 22:45 10_recorded/
drwxrwxrwx  2 yano family  4096 Feb  4 09:39 19_encode_failed/
drwxrwxrwx  2 yano family 12288 Feb  4 22:45 20_encoded/
drwxrwxrwx  2 yano family 16384 Feb  4 08:02 30_ts_files/
yano@GT110b:~$

10分ごとにcronで起動する周期タスク~/etc/cron.sh/encode_mp4.cron/mnt/ts_pool/10_recordedから古い順に数本ずつピックアップして、エンコードできたのは/mnt/ts_pool/20_encodedに、エラーになったものは/mnt/ts_pool/19_encode_failedに移動させていく仕組みに。PIDFILEを使って重複起動しないようにするのを忘れずに。

yano@GT110b:~$ cat ~/etc/cron.sh/encode_mp4.cron
#!/bin/bash
PATH=/bin:/usr/bin:/sbin:/usr/sbin
NUM_FILES=5
EXT_TS=".ts"
PIDFILE=/home/yano/run/`basename $0`.pid
UUID=`id | sed 's/uid=\([0-9]*\)(.*/\1/'`;
[ $UUID -eq 0 ] && PIDFILE=/var/run/`basename $0`.pid;
if [ -e ${PIDFILE} ];
then
    exit;
fi
echo $$ > ${PIDFILE}
trap "/bin/rm -f ${PIDFILE}; exit" 1 2 3 15
CONFIGFILE=/etc/default/epgrec
# source config info
[ -r ${CONFIGFILE} ] && . ${CONFIGFILE}
TS_FILES=`ls -1 ${TS_RECORDED}/*${EXT_TS} | head -${NUM_FILES}`
for f in ${TS_FILES};
do
    /home/yano/bin/ts2mp4_nvidia.sh $f 2>&1 > /dev/null
    if [ $? -eq 0 ];
    then
        chown ${OWNER} ${MP4DIR}/`basename $f ${EXT_TS}`.mp4;
        mv $f ${TS_ENCODED};
    else
        mv $f ${TS_ENCODE_FAILED};
    fi;
done
if [ -e ${PIDFILE} ];
then
    rm -f ${PIDFILE};
fi
yano@GT110b:~$

参照

www.nodoka.org http://www.nodoka.org/