しらすの備忘録

調べごとの備忘録です。

CasperJSで書いたものをcronで定期実行する

はじめに

CasperJSでブラウザの自動操作を書いたので、Cronで自動実行させる。
自動操作の中身はざっくりいうと、あるサイトにログインして、ボタンを一個押す作業。
これを一日一回行いたい。

cronにPATHを通す

cronにはパス(環境変数)がほとんど通っていないので、nodejsのパスを通してやらないとcasperjsも動かない。
cronにパスを設定する方法は色々あるみたいだが、crontabに直接書き込む方式にする。
crontabの編集は以下コマンドから。初めて実行すると利用するエディタを選択できる。vimを選んだ。

$ crontab -e


sirasu55.hatenablog.com
前の記事と同じようにnodejsをインストールしたならパスは以下のように追記する。

PATH=/usr/local/bin:/usr/bin:/bin:/home/pi/.nvm/versions/node/v6.11.4/bin

「:」で区切られたパスがそれぞれ環境変数になるらしい。
「/usr/local/bin:/usr/bin:/bin」まではデフォルトでも通ってるパス?
左のほうが優先されるらしいけどよくわからない。要勉強。
とりあえず1番右でも問題なかった。

もしnodejsを違う方法でインストールしたなら、以下のコマンドで現在のパスを確認できる。
casperjsが動く環境で実行してみて、それっぽいパスを追記すれば良いと思う。

$ echo $PATH

自動実行を登録する

同じく

$ crontab -e

パス以降の行に追記する

# 毎日6時半に自動実行
30 6 * * * casperjs [自動実行したいjsファイルのパス]

上記はこんな意味
「分 時 日 月 曜日 自動実行するコマンド」
例)

#毎日6時にプログラムを実行する
00 6 * * * python /home/hoge/script1.py
  
#毎時10分にプログラムを実行する
10 * * * * python /home/hoge/script2.py
  
#15分毎にプログラムを実行する
*/15 * * * * python /home/hoge/script3.py
  
#毎週月曜日10:00にプログラムを実行する
00 10 * * 1 python /home/hoge/script4.py