Mengapa cron tidak menjalankan skrip?

1

Saya membuat skrip sederhana di file /root/test.sh :

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

lanjut:

chmod +x /root/test.sh

Kita dapat yakin, test.sh apa yang dimiliki oleh root:

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

Jadi, crontab saya:

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

* * * * * /root/test.sh

(Juga saya coba dengan run-parts:

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

)

Tidak ada metode yang tidak menjalankan skrip saya, tidak keluar "halo" dan tidak membuat direktori newdir.

status layanan 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

setiap menit cron mencoba melakukan sesuatu, tetapi, bagaimana saya melihat - saya memiliki pesan

sesi ditutup untuk root pengguna

dan tidak ada yang terjadi.

Apa lagi yang harus saya lakukan?

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

setelah menghapus skrip string [email protected] dengan benar membuat direktori newdir. Namun belum dicetak string 'halo'. Jadi itu berhasil, tetapi beberapa masalah dalam string #echo "halo".

Valentyn Hruzytskyi
sumber
1
Skrip Anda tidak akan menghasilkan apa-apa, karena meskipun Anda telah menentukan MAILTO, Anda tampaknya tidak menjalankan agen transfer surat (MTA). Coba redirect outputnya ke file log.
steeldriver

Jawaban:

1

Jalankan crontab -edan masukkan baris berikut di dalamnya:

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

Ini berjalan setiap menit. File test.err akan memberikan Anda kesalahan output jika perintah tidak berhasil.

kukulo
sumber
file dibuat, tetapi kosong.
Valentyn Hruzytskyi
Maka skrip / perintah Anda berhasil. Jika Anda menjalankan skrip dari terminal, apakah direktori tersebut dibuat?
kukulo
Saya sudah membuat direktori. Terima kasih. Tetapi beberapa masalah dengan perintah #echo.
Valentyn Hruzytskyi
Jika Anda ingin mengirimkan output dari perintah, gunakan baris ini:
kukulo
gema "konten email" | mail -s "mail subject" [email protected]
kukulo