1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

botの一部の機能のためにntpで時刻合わせ

Last updated at Posted at 2012-12-26

よるほーなどのためにサーバの時刻がずれていると困ることがあるので時刻合わせをですね。

UbuntuしかわからないのでUbuntuの場合ですけど。

インストールは
sudo apt-get install ntp

そして設定ファイルを編集
sudo vi /etc/ntp.conf

ntp.conf

# You do need to talk to an NTP server or two (or three).
server #IP直でもNTPサーバのドメイン記述でも
server #2件か3件の記述がルールのようです。
server 

それぞれの環境で適切なサーバをご利用下さいませ。

おそらく導入直後は既に起動&海外のサーバに問い合わせしているので
sudo /etc/init.d/ntp stop
停止させて上記の編集終わったら手動で起動を
sudo /etc/init.d/ntp start

ntpq -p
で状況確認できます。基本的には起動しっぱなしのプロセスになるようです。

ntp.sh
# !/bin/bash
ps -C ntpd -o comm= > /dev/null || /usr/sbin/ntpd

これを毎日定時にcronで起動してるか確認し、動いてなければ起動を。
基本的には一度起動すればずっと動いているはずのもののようです。。。コレを疑うなら他にもやらないとなことが沢山出てくるんですけどね。
はい。時間を安定して調整できるようになれば次はbotの一部の機能を時間で制御。
botは一つのファイルで作ってるけどリプ返しやフォロー返し、単なる自動投稿などを特定の時間だけの動作にしたりする場合に。

bot.py
import datetime

# ここでbotがcronにより動作させられたなうな時間を取得
time = datetime.datetime.now()

# 7の倍数時で45分の時だけ動作させる
if time.hour % 7 == 0 and time.minute % 45 ==0:

# 何か動作内容〜

cronで動作させてる時間に合わせて適切な値を設定して下さい。

参考先サイト様より
http://docs.python.jp/2.5/lib/datetime-datetime.html

クラス datetime(	year, month, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]])
年、月、および日の引数は必須です。tzinfo は None または tzinfo クラスのサブクラスのインスタンス にすることができます。残りの引数は整数または長整数で、 以下のような範囲に入ります

MINYEAR <= year <= MAXYEAR
1 <= month <= 12
1 <= day <= 与えられた年と月における日数
0 <= hour < 24
0 <= minute < 60
0 <= second < 60
0 <= microsecond < 1000000

hourは24にならないのでhour % 8 == 0にすると一日に2回の動作になります。
minuteの値を30以下にすると一時間に2回割り切れる数字が出てくるのでアレです。
7:25 7:50 14:25 14:50 21:25 21:50
七時間おきに一時間で2回動くという現象を起こす可能性があります。
cronの設定にも依りますが。。
time.の後ろにhourなどつければ値を抜き出してこれます。monthやdayを使って元日やクリスマスなどにピンポイントで特定の発言や動作も仕込んだり出来ます。
今回は曜日を取得して何かさせるのは省略してます。私の休日がサービス業仕様で世間様と休日がずれてる故に。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?