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