ふとした拍子にcronのログを見ていたら同じコマンドが実行されていたんですね。

$ less /var/log/cron
Feb  6 00:15:01 ip-000-00-00-000 CROND[16356]: (user) CMD (python /home/user/app/manage.py hogehoge)
Feb  6 00:15:01 ip-000-00-00-000 CROND[16357]: (user) CMD (user python /home/user/app/manage.py hogehoge)
追記

上記のコマンドの
user python /home/user/app/manage.py hogehoge
この部分、おかしいですね〜〜
/etc/crontabの内容を何も考えずにコピーしちゃいました。
/etc/crontabはユーザーを指定して記述するのに対して、crontab -eの場合はユーザーはログインユーザーとなるのでユーザーの記述はいらんのですね。猛省。

おかしいな〜おかしいな〜〜〜〜〜

こわいな〜こわいな〜〜〜〜。

何て思っていたんですが、そういえばcronの設定を二回したような気がしてきたので確かめてみました。

/etc/crontab

まず初めにcronを設定したときはこのこをいじっていました。

$ sudo vim /etc/crontab

ですね。

crontab -e

何を思ったのかこっちでも設定していたような気がしました。

$ crontab -l

で確認することができます。

案の定同じコマンドが同じ時間で実行されるように設定されておりました。

この二つの違いはなんなんでしょうか

こちらがわかりやすいかと思います。

要するに、 /etc/crontabは他のユーザーのcronもまとめて設定できるようなのですね。

たとえば

* * * * * user echo 'fugafuga'
* * * * * user2 echo 'hogehoge'

のような感じです。

対して、crontab -eだと、今現在のユーザーのcronが設定できます。 オプションとして-uを指定すると指定されたユーザーのcronが設定できるようです。

/etc/crontabcrontab -eは別物なんですね。

さっきの例だと

$ sudo vim /etc/crontab
* * * * * user echo 'fugafuga'
* * * * * user2 echo 'hogehoge'

とするのと

$ crontab -e -u user
* * * * * echo 'fugafuga'

とするのと別のコマンドとして実行されるということです。

ややこしいですね〜〜。

最後に

-e-rを間違えないようにしたいですね。

$ crontab -r

crontabの設定全部消えちゃいます。