我が家で買っているTwitterのボット達が3日ほど前から止まっていた。ちなみにbot達は家の古ーいThinkPadにCentOSを入れ、cronで動かしている。LANケーブルが抜けたか、電源が抜けたもんだと思ってチェックしてみると、ネットも電源も問題ない。で、次にbotのつぶやきスクリプトを実行するとこうなった。
tweepy error TweepError: Timestamp out of bounds
ちなみにtweepyはTwitterのOAuthを簡単に使えるようにしたライブラリで飼ってるbot達は全部これでつぶやいている。tweepyの使い方についてはこっちを参照して下さい。
どうやらつぶやくタイミングでエラーを吐いていて他のbotも同じ現象。もしかしてtweepy内部の問題かッ( ・`ω・´)とキリッてみましたが、実は全然関係なくThinkPadの時間がズレてることが原因でした。30分ぐらい時間がずれていてそれでエラーが起きてしまったようです。
ということで時刻を正常に戻します。『NTP サーバ』で調べればいっぱい出てきます。ここではNICTのntpサーバを利用しました。
# yum install ntp (ntp入れていないなら実行) # ntpdate ntp.nict.jp
毎回これをやるのは結構しんどいので定期的にntpdateを行うスクリプトをcronで動かしましょう。/etc/cron.daily以下に実行ファイル置くとそれを毎日1回実行してくれます。cronのファイル名は何でもいいです。
# vi /etc/cron.daily/ntp.cron
#!/bin/sh /usr/sbin/ntpdate ntp.nict.jp
実行権限をつける。
chmod 755 /etc/cron.daily/ntp.cron
これで大丈夫。