質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

Q&A

解決済

3回答

25082閲覧

centos7にてcrontabを編集後、シェルが実行されない

senaha

総合スコア17

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

0グッド

0クリップ

投稿2017/02/16 06:29

###前提・実現したいこと
環境:centos7.0
任意の時間にシェルを実行したい。

###発生している問題・エラーメッセージ
cronにて実行したいシェルがあるのですが、設定後にその時間を過ぎても実行されません。
エラーメッセージが表示されるわけではないのですが/var/logに以下のログが記載されます。

Feb 16 15:18:01 ** **[**]: (*system*) RELOAD (/etc/crontab)

crontabの設定内容は以下の通りです。

18 15 * * * root /opt/backup/backup.sh

OSの再起動を実施しても状況が変わらないのですが、
どういったことが考えられるでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

CentOS7はデフォルトでcronie-anacronがインストールされますが、
cronie-noanacronへの入れ替えは実施済みでしょうか?

# yum install cronie-noanacron # yum remove cronie-anacron

デフォルトでインストールされているcronie-anacronの場合、
期待されているようなジャストタイムでのジョブ実行は出来ませんので、
cronie-noanacronをインストールしてみてください。

投稿2017/02/16 06:40

編集2017/02/16 06:44
mri0815

総合スコア429

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

senaha

2017/02/16 08:23 編集

ご回答ありがとうございます。 入れ替え後、再度試したところ、実行されるようになりました! ただ、このジョブが動くのはジャストタイムである必要は無い為、 出来ればcronie-anacronの環境で起動させたいと思っています。 入れ直した後にanacrontabへ以下のように設定を行えば24時間中の誤差1分程度で実行されるようになるのでしょうか? ``` # /etc/anacrontab: configuration file for anacron # See anacron(8) and anacrontab(5) for details. SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # the maximal random delay added to the base delay of the jobs #RANDOM_DELAY=45 RANDOM_DELAY=1 # the jobs will be started during the following hours only #START_HOURS_RANGE=3-22 START_HOURS_RANGE=0-24 #period in days delay in minutes job-identifier command 1 5 cron.daily nice run-parts /etc/cron.daily 7 25 cron.weekly nice run-parts /etc/cron.weekly @monthly 45 cron.monthly nice run-parts /etc/cron.monthly ``` 追加の質問になってしまい恐縮ですが、ご教示の程よろしくお願いいたします。
mri0815

2017/02/16 08:27 編集

若干異なります。 cron.dailyについて回答いたします。 ``` 1 5 cron.daily nice run-parts /etc/cron.daily ``` 上記の左から、 1→何日おきに実行するか 5→実行までの待ち時間(分) となります。 ですので、0時にサーバが起動しており、ジョブを実行できる状況の場合、 0:01にanacron が起動し(anacron は毎時1分に起動します。) 0:06~0:07の間にジョブが実行されるということになると存じます。 (0時を例に取りましたが、他の時間でも同様です。)
TaichiYanagiya

2017/02/17 09:11

/etc/cron.d/ の下にファイルを作成すれば、遅延なしで実行されませんでしょうか?
mri0815

2017/02/20 02:17

TaichiYanagiya さま お返事が遅くなりました。すみません。 本題ですが、ご提示頂いた内容でも問題ないかと存じます。 RHEL6でも結局は、/etc/cron.d/0hourlyをcronが実行し、 anacronコマンドが実行されるという流れの認識です。
guest

0

さらっとドキュメントを見ました。
初めからだとこんな感じだと思います。

全部rootユーザーで

インストール # yum -y install cronie 実行シェルを作る # vi /opt/backup/backup.sh 権限追加 # chmod +x /opt/backup/backup.sh crontabに追加 # vi /etc/crontab 確認、スタート、自動化 # systemctl status crond.service # systemctl start crond.service # systemctl enable crond.service

第21章 システムタスクの自動化
https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/ch-Automating_System_Tasks.html

投稿2017/02/16 08:11

mosapride

総合スコア1480

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

18 15 * * * root /opt/backup/backup.sh 1>/tmp/backup.log 2>/tmp/backup.error.log

とか、まずはログをちゃんと出してみてはいかがでしょうか。
あと、

sudo sh /opt/backup/backup.sh

とか、直接実行した場合は正しく動く事は確認できているのでしょうか。

投稿2017/02/16 06:41

kunai

総合スコア5405

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

senaha

2017/02/16 07:33

ご回答ありがとうございます。 ログ出力ですが、起動すらできていないで、指定したフォルダにログが作成できませんでした。 なお、手動での実行は正常に動作することを確認しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問