Cronを使った定期処理 : Linux

Pocket

Cornのメモです。

概要

Cronを使ったサンプルを掲載します

前提

サーバーのOSは以下のとおりです。

  • Ubuntu Server 16.04

説明は、サーバーへubuntuユーザーでログインしていることを、前提とします。

cronファイル

crontabで作成するファイルは、/var/spool/cron/crontabsディレクトリに保存されます。
ubuntuユーザーで、作成したファイルは/var/spool/cron/crontabs/ubuntuになります。

crontabコマンド

Cronの編集は、/var/spool/cron/crontabs/ubuntuファイルを直接編集せずに、crontabコマンドを使います。

編集 削除 一覧
crontab -e crontab -r crontab -l

私は、編集するの前に、バックアップを作成しています。

$ crontab -l > /path/to/backup

Cronの書式

基本的な書式は、以下のとおりです。

* * * * * コマンド
分 時 日 月 曜日

1分ごとに /var/log/cron/log.txtへ、日時を出力するサンプルは以下のとおりです。

*/1 * * * * echo `date` >> log.txt

出力

標準出力・標準エラー出力

次のサンプルは、以下のように出力します。

  • 標準出力は、log.txtへ出力
  • 標準エラー出力は、error.txtへ出力

サンプルは、eechoechoのtpyo)がエラーになるので、error.txtへ出力されます。

# 下記はeechoがエラーなのでerror.txtへ出力されます。
*/1 * * * * eecho `date` >/var/log/cron/log.txt 2>/var/log/cron/error.txt

標準エラー出力を標準出力へリダイレクト

# エラー出力もlog.txtへ出力されます。
*/1 * * * * eecho `date` >/var/log/cron/log.txt 2>&1

MAILTO

MAILTOを指定したときは、標準出力(エラー含む)の内容を指定アドレスへ送信します。  
(出力内容がファイルなどへリダイレクトされているときはメールは送信されません。)  
MAILTOが未設定のときはCronの作成ユーザーへメールが送信されます。

MAILTO="info@example.com"
LANG=ja_JP.UTF-8
LC_ALL=ja_JP.UTF-8
CONTENT_TYPE=text/plain; charset=UTF-8

*/1 * * * * echo `date`

コメント

No comments yet.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。