bitFlyer ビットコイントレード用bot
time4vpsという月々130円〜VPSが借りれるサービスを利用して、mmbot と SFD bot を運用している。
http://api.bitflyer.jp までのping遅延は、1ms以下ととても優秀だ。
[time4vps概要記事]
https://blog.bnikka.com/domain/time4vps.html
このVPSの bot まわりの設定を、忘れないようにメモしておこうと思う。
メンテナンス時間に bot を止める
3:59に bot を停止し、4:11 に bot を起動するように cron に設定
$ crontab -e
# m h dom mon dow command
59 3 * * * sh /home/USERNAME/dev/btc/kill.sh
11 4 * * * python3.5 /home/USERNAME/dev/btc/mmbot_SFD_bitFlyer.py &
cron のログを吐く
Ubuntu16.04 では、cron のログは syslog のみに吐かれるようになっており、これは cron の状況確認に不便なので、cron.log を吐くように設定
/etc/rsyslog.d/50-default.conf内で
#cron.* /var/log/cron.logの#を取る
service rsyslog restartで、rsyslogを再起動
logrotate設定
bot のログは、/home/USERNAME/dev/btc/log/xxxxx.log に蓄積するものとする。
ログがでかくなるので、logrotate で圧縮し、古いものは捨てるように設定。
$ sudo vi /etc/logrotate.d/bitFlyer
/home/USERNAME/dev/btc/log/bitFlyer.log { # 対象のログファイル ifempty # ログファイルが空でもローテーションする dateformat .%Y%m%d # dateフォーマットを任意のものに変更する missingok # ログファイルがなくてもエラーを出さない compress # 圧縮する daily # 毎日ローテートする rotate 100 # 100世代分古いログを残す postrotate # ローテート後にsyslogを再起動 /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true endscript }
cronで自動起動
bitFlyer のサーバ負荷が高い時に、おそらく私のプログラムの順正常動作が不完全だからだと思うが、よくプロセスが落ちる。
そんなときのために、cron でプロセス監視をして、落ちていたら起動するように
$ crontab -e
*/1 * * * * ps ax |grep -v grep | grep -q bitFlyer || sh /home/USERNAME/dev/btc/start.sh
コメント