Saya memiliki skrip yang berfungsi saat saya menjalankannya dari baris perintah, tetapi ketika saya menjadwalkannya dengan cron
saya mendapatkan kesalahan sehingga tidak dapat menemukan file atau perintah. Pertanyaan saya ada dua:
Ketika saya menjadwalkan penggunaan tugas cron
crontab -e
, apakah ia menggunakan ID pengguna saya sebagai dasar untuk izinnya? Atau apakah ia menggunakan ID pengguna cron dari beberapa jenis dan izin yang terkait?Ketika pekerjaan cron diluncurkan, apa itu direktori kerja? Apakah ini direktori tempat saya menentukan skrip untuk dijalankan, atau direktori lain?
Inilah pekerjaan cron saya:
15 7 * * * /home/xxxx/Documents/Scripts/email_ip_script.sh
Berikut ini skrip yang sebenarnya:
vIP_ADDR="`curl automation.whatismyip.com/n09230945.asp`"
echo "$vIP_ADDR"
sed "s/IPADDR/$vIP_ADDR/g" template.txt > emailmsg.txt
ssmtp XXXXX@gmail.com < emailmsg.txt
Berikut adalah kesalahan yang saya dapatkan ketika saya melihat mail
pesan yang dihasilkan oleh cron
:
sed: can't read template.txt: No such file or directory
/home/xxxx/Documents/Scripts/email_ip_script.sh: line 15: ssmtp: command not found
Itu tidak dapat menemukan template.txt
tetapi itu berada di direktori yang sama dengan skrip. Itu juga tidak bisa berjalan ssmtp
, tetapi saya bisa sebagai pengguna saya. Apa yang saya lewatkan agar ini berfungsi dengan baik?
cron
itu miliknya sendiriPATH
atau dapatkah saya memeriksa pengguna sayaPATH
? Saya mengatur ssmtp untuk memilikinya sendiriuser
danwheel
izin berpikir itu akan memungkinkan siapa saja untuk menggunakannya (termasuk cron). Jika ini membantu saya di CENTOS 6.2