Saya memiliki skrip yang berfungsi saat saya menjalankannya dari baris perintah, tetapi ketika saya menjadwalkannya dengan cronsaya 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 mailpesan 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.txttetapi 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?
cronitu miliknya sendiriPATHatau dapatkah saya memeriksa pengguna sayaPATH? Saya mengatur ssmtp untuk memilikinya sendiriuserdanwheelizin berpikir itu akan memungkinkan siapa saja untuk menggunakannya (termasuk cron). Jika ini membantu saya di CENTOS 6.2