web-dev-qa-db-ja.com

anacronタスクのどこが間違っているか教えてください。

私はアバクロンのためにこのタスクを作ろうとしました:

dm@dm-system:~$ cat /etc/anacrontab 
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.

Shell=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root

# These replace cron's entries
1   5   cron.daily  run-parts --report /etc/cron.daily
7   10  cron.weekly run-parts --report /etc/cron.weekly
@monthly    15  cron.monthly    run-parts --report /etc/cron.monthly
@daily 5 /home/dm/Devel/btsync && notify-send "Btsync loaded (pid `pidof btsync`)" "Link <a href='http://0.0.0.0:8888/gui/'>here</a>."

このコマンドは私のxubuntu端末からうまく実行されました

/home/dm/Devel/btsync && notify-send "Btsync loaded (pid `pidof btsync`)" "Link <a href='http://0.0.0.0:8888/gui/'>here</a>."

しかし、ノートブックを起動すると、/ var/syslogに表示されました。

Aug 14 10:49:06 dm-system anacron[904]: Anacron 2.3 started on 2014-08-14
Aug 14 10:49:06 dm-system anacron[904]: Invalid syntax in /etc/anacrontab on line 14 - skipping this line
Aug 14 10:49:06 dm-system cron[841]: (CRON) INFO (pidfile fd = 3)
Aug 14 10:49:06 dm-system cron[998]: (CRON) STARTUP (fork ok)
Aug 14 10:49:06 dm-system cron[998]: (CRON) INFO (Running @reboot jobs)
Aug 14 10:49:07 dm-system anacron[904]: Will run job `cron.daily' in 5 min.
Aug 14 10:49:07 dm-system anacron[904]: Jobs will be executed sequentially
Aug 14 10:54:04 dm-system anacron[904]: Job `cron.daily' started
Aug 14 10:54:05 dm-system anacron[2616]: Invalid syntax in /etc/anacrontab on line 14 - skipping this line
Aug 14 10:54:05 dm-system anacron[2616]: Updated timestamp for job `cron.daily' to 2014-08-14
2
dmgl

anacrontabの構文は manpage によると、

ジョブ記述行は、次の2つの形式のいずれかです。

      period  delay  job-identifier  command

      @period_name delay job-identify command

job-identifierがないと思います。だから何かのような;

@daily 5 btsync-job /home/dm/Devel/btsync && notify-send "Btsync loaded (pid `pidof btsync`)" "Link <a href='http://0.0.0.0:8888/gui/'>here</a>."

また、マンページには、現在のところ、@period_name@monthlyにしかなり得ないことが記載されています。したがって、@dailyの代わりに、以下を使用する必要があります。

1 5 btsync-job /home/dm/Devel/btsync && notify-send "Btsync loaded ...

これとは別に、notify-sendにはDISPLAY変数を設定する必要があります。これは通常:0ですが、ターミナルでecho $DISPLAYを使用して確認できます。したがって、anacrontabエントリは次のようになります。

DISPLAY=:0
1 5 btsync-job /home/dm/Devel/btsync && notify-send "Btsync loaded ...
4
muru