--- title: cronが実行される際のpath author: kazu634 date: 2009-04-12 url: /2009/04/12/_1225/ wordtwit_post_info: - 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:4555;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}' categories: - cron - linux ---

cronが実行されるときはログインした際の環境変数が用いられません。そのためにコマンドを実行しても、pathが通っていないとお叱りを受けることがあります。今回はどのようにすれば「pathが通っていない」というお叱りを受けずに済むかを調べてみました。

結論から言うと、crontabの先頭にpathという項目を作成すればいいようです(参考: 「crontabで設定したタスク実行時に、メールを送信しないようにする。 – 今日も元気にlinux – mylinuxグループ」)。たとえば

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""
HOME=/
# m h  dom mon dow   command
 5 * * * /var/samba/util/collect_conf
  1 * * /var/samba/util/update_aptitude

というように設定すると、pathが通るようです。