cron

概要

指定した日付の時分で、コマンドを実行させたいときに使う。JOBスケジューラーみたいな。

ユーザはそれぞれ自分用の crontab を持っており、 各 crontab に与えられたコマンドは、 その crontab を所有しているユーザの権限で実行されることになる。 (manから抜粋)

使用してみる

# crontab -e
bash: crontab: コマンドが見つかりません 
# 

なぜだ。crontabがない。。。。

インストール済みのパッケージの内容を確認

# yum list | grep cron 
PackageKit-cron.x86_64 0.5.8-26.el6 base
cronie.x86_64 1.4.4-16.el6_8.2 base 
cronie-anacron.x86_64 1.4.4-16.el6_8.2 base 
cronie-noanacron.x86_64 1.4.4-16.el6_8.2 base 
crontabs.noarch 1.10-33.el6 base <--- @がついてないのでインストールされていない 
rpm-cron.noarch 4.8.0-59.el6 base 
yum-cron.noarch 3.2.29-81.el6.centos base 
# 

crontabインストール!

yum install crontabs
 読み込んだプラグイン:fastestmirror, refresh-packagekit, security インストール処理の設定をしています 
 Loading mirror speeds from cached hostfile 
 base: ftp-srv2.kddilabs.jp 
 extras: ftp-srv2.kddilabs.jp 
 updates: ftp-srv2.kddilabs.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 
 ---> Package crontabs.noarch 0:1.10-33.el6 will be インストール 
 --> 依存性の処理をしています: /etc/cron.d のパッケージ: crontabs-1.10-33.el6.noarch 
 --> トランザクションの確認を実行しています。 
 ---> Package cronie.x86_64 0:1.4.4-16.el6_8.2 will be インストール 
 --> 依存性の処理をしています: dailyjobs のパッケージ: cronie-1.4.4-16.el6_8.2.x86_64 
 --> トランザクションの確認を実行しています。 
 ---> Package cronie-anacron.x86_64 0:1.4.4-16.el6_8.2 will be インストール 
 --> 依存性解決を終了しました。 
 依存性を解決しました 
 ================================================================================ パッケージ アーキテクチャバージョン リポジトリー容量 ================================================================================ 
インストールしています: crontabs noarch 1.10-33.el6 base 10 k 依存性関連でのインストールをします。: cronie x86_64 1.4.4-16.el6_8.2 base 75 k cronie-anacron x86_64 1.4.4-16.el6_8.2 base 31 k トランザクションの要約 ================================================================================ 
インストール 3 パッケージ総ダウンロード容量: 116 k インストール済み容量: 220 k これでいいですか? [y/N]y 
パッケージをダウンロードしています: 
(1/3): cronie-1.4.4-16.el6_8.2.x86_64.rpm | 75 kB 00:00 
(2/3): cronie-anacron-1.4.4-16.el6_8.2.x86_64.rpm | 31 kB 00:00 
(3/3): crontabs-1.10-33.el6.noarch.rpm | 10 kB 00:00 -------------------------------------------------------------------------------- 
合計 224 kB/s | 116 kB 00:00 rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行していますインストールしています : cronie-1.4.4-16.el6_8.2.x86_64 
1/3 インストールしています : crontabs-1.10-33.el6.noarch 
2/3 インストールしています : cronie-anacron-1.4.4-16.el6_8.2.x86_64 
3/3 
Verifying : crontabs-1.10-33.el6.noarch 1/3 
Verifying : cronie-anacron-1.4.4-16.el6_8.2.x86_64 2/3 
Verifying : cronie-1.4.4-16.el6_8.2.x86_64 3/3 インストール: crontabs.noarch 0:1.10-33.el6 依存性関連をインストールしました: cronie.x86_64 0:1.4.4-16.el6_8.2 
cronie-anacron.x86_64 0:1.4.4-16.el6_8.2 完了しました! 
# 
# crontab -l 
no crontab for root 
# 
# yum list | grep crontabs 
crontabs.noarch 1.10-33.el6 @base

動作確認

 #crontab -e 

設定した時間になっても、動作しない。。。

デーモンがどうとか、manに記載があったのでデーモンの起動方法をググる

# service crond start
crond を起動中:   [  OK  ]
#

22分まで待つ

# ls -l /tmp/cron.log
-rw-r--r-- 1 root root 59 9月 29 20:22 2018 /tmp/cron.log
#

YES!

以下、おさらい。

設定の確認

# crontab -l
# コメントがうてる
22 * * * * ls > /tmp/cron.log
#

分、時、日、月、曜日、コマンド という形式

設定する

crontab -e

# コメント

# 分、時、日、月、曜日、コマンドという形式 #は、コメント行
* * * * * ls

- 範囲

# 20分から30分まで実行
20-30 * * * * ls

/ 刻み

# 5分毎に実行
*/5 * * * * ls

全削除する

※なんの確認もなく、一瞬にして全削除されるので気をつけること

crontab -r

コメント

タイトルとURLをコピーしました