発話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
# /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
これで成功した。