LoginSignup
6
2

More than 5 years have passed since last update.

はじめてのCron設定

Posted at

概要

いままでcronに触れたことがなかったので、実験的にさわってみようというのがこの記事の主旨です。
内容は初心者向けです。

実行環境

  • MacOs High Sierra
  • ターミナル

そもそも、Cronとは?

  • 設定内容に応じて、定期的にジョブを実行してくれるもの
  • crontabというコマンドを用いて①スケジュールと②コマンドを設定できる

※例えば、「毎週月曜〜金曜日の午前3時から4時の間に〇〇.shを実行してください」というようなスケジュールを組むことができる。

やったこと

  1. シェルスクリプトで超簡単な処理を記述
  2. crontabでスケジュールを設定
  3. 実行結果を確認

hoge.shに簡単な処理を記述する

はじめに、簡単な処理をかきます

ターミナル
// 編集画面を開く
$ vim hoge.sh 

// 現在日時をテキストファイルにアウトプットする処理をかく
date >> hogelog.txt
~
~
~
"hoge.sh" [New File]

// hoge.shの実行権限を与える
$ chmod 755 hoge.sh

// ついでに、作成したファイルの絶対パスを確認しておく
$ ls -ld $PWD/hoge.sh
-rwxr-xr-x  1 manabee  staff  20 Dec 14 10:40 /Users/manabee/hoge.sh

crontabでスケジュール設定する

今回は、"1分間隔"、"毎時"、"毎月"、"土・日曜日"に実行するようにしてみます

設定方法の詳しい説明はこちらを参照しましょう
https://eng-entrance.com/linux-command-crontab

ターミナル
// 設定画面を開く
$ crontab -e 

// 以下のように設定(スケジュール + 実行するコマンドのパス)
*/1 * * * 0,6 /Users/manabee/hoge.sh
~
~
~

※ちなみに土曜日、日曜日で設定する際 にはじめ"6,7"で試したのですが、うまくいきませんでした

実行状況を確認する

ターミナル
// 設定しているcronを確認
$ crontab -l 
*/1 * * * 0,6 /Users/manabee/hoge.sh

// 出力されたファイルを確認
$ cat hoge.txt

// ↓内容↓
Sat Dec 14 10:40:16 JST 2018
Sat Dec 14 10:41:16 JST 2018
Sat Dec 14 10:42:16 JST 2018

設定した処理が定期実行されていることが確認できました:relaxed:

設定したcronを削除、停止する

ターミナル
// 削除する(設定したものが全て消えてしまうので注意)
$ crontab -r

// 停止するだけなら、#でコメントアウトすればとまる
$ crontab -e 
# */1 * * * 0,6 /Users/manabee/hoge.sh
~
~

感想

ターミナルでコマンドを使うことに抵抗?馴れていなかったため、はじめは難しいものかと思っていましたが、意外ととっかかりやすい仕組みだと思いました。

6
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2