1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

cronを使ってみた

Last updated at Posted at 2020-10-11

##基本事項のざっとした説明

※細かいことは他にも色々あるので必要な人は調べてください

  • cron --- 定期実行するデーモン
  • crontab --- cronのスケジュール設定する

実行環境 Linux Mint(19.1 Tessa) ,EC2(Amazon Linux2)

以下のコマンドで現在の設定内容を表示できる

$crontab -l

上記コマンドをdockerの中とMacで実行したが、コマンドが存在しなかったので(※後で確認したらMacにはありました。。。表示が少し違っていたので見間違いと思われます)
とりあえずLinux Mint(19.1 Tessa)のPCで試してみた。crontabが使えてかつ未設定の場合は以下のように表示される。
corabtab_-l.png
以下のコマンドで設定の編集ができるようになる、最初はエディタの指定を求められる。(今回はVimに設定した。nanoがおすすめされていた)

$crontab -e

crontab_-e.png

コマンドは 分、時、日 、月、曜日、コマンド
の順番で記載し、半角スペースを空ける。
以下は10分毎にシェルを実行する設定

*/10 * * * * /home/user/test.sh

cronの実行ログを確認するコマンド

  • Linux Mintの場合
grep CRON /var/log/syslog
  • EC2の場合
sudo grep CRON /var/log/cron

今回遭遇したトラブルと対応方法

###トラブル① エラー No MTA installed, discarding output

設定してもまったくなにも起きなかったので実行ログを確認したところ以下のような表示が出ていた。
cron_log_err.png
調べたところ、UbuntuとUbuntuがベースのLinux Mintで起きる事象であるとのこと。

postfixをインストールすると上記のエラーは解消された。

sudo aptitude install postfix

###トラブル② シェルのパーミッション
トラブル①を解消するも全くシェルが動かなかった。
ふとファイルのパーミッションをls -lコマンドで確認してみると-rw-rw-r--だった。

実行権限を付与した。(とりえず動かすための権限付与なので必要に応じて変えてください)

chmod +x test.sh

正常にシェルは動作した。

##補足
ちなみにcronの動作確認をしたかっただけなので確認用のコマンドは以下のように簡単なものを使用した。

echo "test cron1" >> /home/owner/aaa.txt
1
1
0

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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?