特別なコマンドを毎日起動しますが、ユーザー固有のユーザーであるため、/ etc/cron.d /に入れたくありません!
pg@pipoTower: ~$ crontab -l
# m h dom mon dow command
0 0 * * * updatedb -l 0 -o ~/.externalharddisk.db -U /var/autofs/removable/usbData
crontab -e
コマンドは、ファイルを/var/spool/cron/crontabs/userName
しかし、それがanacronによって呼び出されない理由を知らない....
usr@Tower: ~/$ 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
これには2つの回避策が見つかりました...
オプション1:cron.dailyスクリプトを非rootユーザーとして実行する
/etc/cron.daily
のスクリプトはrootとして実行されますが、rootは他の人として実行するためにパスワードを必要としません。そこで、次のようなスクリプトを配置します。
su myuser -c "/home/myuser/dostuff.sh"
これを設定するためにrootになる必要がある場合の主な欠点。
オプション2:パーソナルアナクロンを設定する
~/.anacron/daily
、~/.anacron/weekly
、~/.anacron/monthly
などの独自のanacronスクリプトディレクトリを作成します。毎日のスクリプトを毎日のディレクトリに置きます。
次に、~/.anacron/anacrontab
などの独自のanacrontabファイルを作成します。そして、それをこう言ってください:
1 5 cron.daily run-parts --report /home/myuser/.anacron/daily
7 10 cron.weekly run-parts --report /home/myuser/.anacron/weekly
@monthly 15 cron.monthly run-parts --report /home/myuser/.anacron/monthly
また、~/.anacron/spool
など、anacronタスクのスプールディレクトリを作成します。
最後に、anacronを実行する必要があります。このために頻繁にcronジョブを使用してください。 crontab -e
を実行して追加
* * * * * /usr/sbin/anacron -t /home/myuser/.anacron/anacrontab -S /home/myuser/.anacron/spool
これにより、設定でanacronが毎分実行され、ジョブが期限切れの場合、anacronが実行します。必要に応じて頻度を減らすことができます。ほとんどのユーザーにとっては1時間ごとで十分でしょう。