CentOSのcronで定期作業を自動で行わせる
環境
さくらのVPS CentOS6
動機
railsアプリケーションを作ってて自動メンテに挑戦してみたいと思ったため。
毎度ながら素人の自分でもできる超簡単な方法を採ったので、たぶんもっとセキュアでいい方法はあると思う。
やったこと
Webアプリ側
自作のチャットアプリで1分毎に「test」と自動投稿させてみる。
rails側でこういうアクションを書く。
def create_test_comment Comment.create(content: 'test') end
ルーティングでアプリURL/testにアクセスすれば上のアクションが実行されるよう設定。
CentOS側
$ crontab -u [ユーザ名] -e
エディタが起動されるので、
*/1 * * * * curl http://example.com/test
と入力して保存。
あとは自動実行をわくわくして見守る。
うまくいってることを確認。
同じ要領で「テーブルのレコードが◯件を超えた分を削除」とか定期実行させられそう。