web-dev-qa-db-ja.com

毎分実行するcronジョブを実行する方法は?

/homeディレクトリに、名前にタイムスタンプが含まれるディレクトリを作成しようとしています。 rootユーザーとして次のcronジョブを作成しましたが、実行されていません。何が悪いのですか?

以下は、rootユーザー権限で作成したcronジョブです。

[root@bvdv-emmws01 home]# crontab -l
* * * * * /home/test.sh

/home/test.shの内容は次のとおりです。 pdate:ディレクトリの完全パスを追加しました。

[root@bvdv-emmws01 home]# cat /home/test.sh 
#!/bin/bash
mkdir /home/test_$(date -d "today" +"%Y%m%d%H%M%S")

/home/test.shの許可:

[root@bvdv-emmws01 home]# ls -ltr /home/test.sh
-rwxrwxrwx 1 root root 58 Dec  2 12:58 /home/test.sh

/etc/crontabファイルを更新しました。このファイルには次の内容が含まれています。

[root@bvdv-emmws01 home]# cat /etc/crontab
Shell=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR Sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

* * * * * root /home/test.sh

crond daemonのステータス

[root@bvdv-emmws01 home]# service crond status
crond (pid  1910) is running...
7
Tahir Akram

crontab -eで作成され、crontab -lで一覧表示できるcrontabには、コマンドにユーザーを指定しないでください。エントリは次のようになります。

* * * * * /home/test.sh

または、代わりに/etc/crontabにある行を挿入します。

man 5 crontabから(セクション「システムのCRONファイルの例」):

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

最後の文に注意してください。

9
Anthon