web-dev-qa-db-ja.com

cronがスクリプトを実行しないのはなぜですか?

/ root/test.shファイルに単純なスクリプトを作成します。

#!/bin/bash
echo "hello"
mkdir newdir

次:

chmod +x /root/test.sh

Rootがtest.shを所有していることを確信できます。

root@ubuntu-s-1vcpu-1gb-ams3-01:~# find /root -user root /root
/root/test.sh

だから、私のcrontab:

root@ubuntu-s-1vcpu-1gb-ams3-01:~# crontab -l
Shell=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin

* * * * * /root/test.sh

(また、私は実行部分で試しました:

* * * * * root run-parts /root/test.sh

スクリプトを実行せず、「hello」を実行せず、newdirディレクトリを作成しない方法はありません。

サービスcronステータス:

root@ubuntu-s-1vcpu-1gb-ams3-01:~# service cron status
● cron.service - Regular background program processing daemon
   Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-08-18 15:46:42 UTC; 23h ago
     Docs: man:cron(8)
 Main PID: 1340 (cron)
    Tasks: 1
   Memory: 26.8M
      CPU: 7.982s
   CGroup: /system.slice/cron.service
           └─1340 /usr/sbin/cron -f

Aug 19 15:16:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[439]: (root) CMD (root run-parts /root/test.sh)
Aug 19 15:16:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[438]: (CRON) info (No MTA installed, discarding output)
Aug 19 15:16:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[438]: pam_unix(cron:session): session closed for user root
Aug 19 15:17:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[1032]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug 19 15:17:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[1031]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug 19 15:17:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[1033]: (root) CMD (root run-parts /root/test.sh)
Aug 19 15:17:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[1032]: (CRON) info (No MTA installed, discarding output)
Aug 19 15:17:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[1032]: pam_unix(cron:session): session closed for user root
Aug 19 15:17:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[1034]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Aug 19 15:17:01 ubuntu-s-1vcpu-1gb-ams3-01 CRON[1031]: pam_unix(cron:session): session closed for user root

毎分cronが何かをしようとしますが、私が見る方法-私はメッセージを持っています

ユーザーrootのセッションが閉じられました

そして何も起こりません。

さらに何をする必要がありますか?

================================================== =======================

文字列[email protected]スクリプトを削除すると、newdirディレクトリが正しく作成されます。しかし、まだ文字列「hello」は印刷されていません。動作しますが、#echo "hello"文字列に問題があります。

1

実行crontab -eそして、次の行を入力します。

*/1 * * * * /root/test.sh 1> /dev/null 2> /root/test.err

これは毎分実行されています。 test.errファイルは、コマンドが成功しない場合に出力エラーを提供します。

1
kukulo