Komut satırından çalıştırdığımda çalışan bir komut dosyasını kullanıyorum, ancak programladığımda crondosyaları veya komutları bulamadığı için hatalar alıyorum. Sorum iki katlıdır:
Kullanarak bir cron işi zamanlarken
crontab -e, kullanıcı kimliğimi izinlerinin temeli olarak kullanır mı? Yoksa bir tür cron kullanıcı kimliği ve ilgili izinleri kullanıyor mu?Bir cron işi başlatıldığında, çalışma dizini nedir? Çalıştırılacak betiği belirttiğim dizin mi, yoksa farklı bir dizin mi?
İşte benim cron işim:
15 7 * * * /home/xxxx/Documents/Scripts/email_ip_script.sh
İşte asıl komut dosyası:
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
İşte mailtarafından üretilen mesajı görüntülediğimde aldığım hatalar 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
template.txtBulamaz , ancak komut dosyasıyla aynı dizinde bulunur. Ayrıca çalıştırılamıyor ssmtp, ancak kullanıcım olarak çalışabiliyorum. Bunun düzgün çalışması için neyi özlüyorum?
cronkendine ait olur muPATHyoksa kullanıcımı kontrol edebilir miyimPATH? Ssmtp'yi , birinin kullanmasına izin vereceğini düşünerek (cron dahil), kendiuservewheelizin için hazırladım . CENTOS 6.2 üzerinde Im yardımcı olursa