定期処理をするのに今だと色々やりかたありますが、cronが一番手軽でたまに使うのでまとめてみました
ログインしているユーザーでcronの設定を見る
crontab -lcronの設定をする
crontab -eここで注意なのが crontab -r をすると設定が消えてしまい復元できないで気をつけましょう
間違えたことはないですが、eとrがキーボードで隣にあるので、危険
必ず crontab -l したあとにやれば、一度表示されてるので消しても手で戻せて安心です
# 分 時 日 月 曜日 の順
30 5 * * * /bin/bash sample.sh上の例だと、毎日 AM 5:30 に sample.sh を bash が実行
ruby sample.rb を定期実行したい場合、そのままcrontabにかくと ruby not found と言われることがあります
ログインした状態で動かないからなので、ログインしたシェルで動くように
# 分 時 日 月 曜日 の順
30 5 * * * /bin/bash -lc "ruby sample.rb"で動く場合もありますが、rbenvで入れたものだと動かなかったので
which ruby して出てきたパス /home/user/.rbenv/shims/ruby を指定してみて
30 5 * * * /bin/bash -lc "/home/user/.rbenv/shims/ruby sample.rb"とやると動作しました
定期実行させたスクリプトで吐くログとエラーを保存する場合
30 5 * * * /bin/bash -lc "/home/user/.rbenv/shims/ruby sample.rb" >> log 2>&1とするとlogファイルが作成され、追記されていきます