americandog1993の日記

プログラマー歴半年のメモ

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

と入力して保存。
あとは自動実行をわくわくして見守る。

f:id:americandog1993:20170716071758p:plain

うまくいってることを確認。
同じ要領で「テーブルのレコードが◯件を超えた分を削除」とか定期実行させられそう。