2019年11月13日水曜日

発話PUSHプログラムのログ

発話PUSHプログラム example.js のログが取れていなかった。ログをとるシェルスクリプトにおいて、ログファイル名を取得すべく forever list コマンドを実行しているが、絶対パス指定をしていなかったのが原因だったのかもしれないと思い、絶対パス指定に修正した。これで様子を見てみることにした。
#!/bin/sh

log_file1=`/usr/local/bin/forever list | grep root | /usr/bin/awk '{print $8}'`
log_file2=$(/usr/bin/printf $log_file1 | /bin/sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g")
cp $log_file2 /home/mtanaka/pill-reminder/log/example_`date "+%Y%m%d"`.log
echo '' > $log_file2
リスト1.発話PUSHプログラムのログ取得シェル/root/log-backup.sh

この修正でもダメだった。crontab -e の設定がまずいのかと思い、以下のようにシェルスクリプトの前に/bin/bashを付けてみた。 
0 1 * * * /bin/bash /root/log-backup.sh
これで様子を見てみる。

この方法でもダメだった。そこで、「Cronの使い方とテクニックと詰まったところ」にしたがって /etc/cron.d/内に下記の内容のファイルlog-backupを作成してcronを再起動した。
# /etc/cron.d/log-backup: crontab entries for the pill-reminder package

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

0 1    * * *   root    /root/log-backup.sh >> /root/log-backup.log 2>> /root/log-backup.err
リスト2./etc/cron.d/log-backup

これで成功した。

0 件のコメント:

コメントを投稿