Komut satırından çalıştırdığımda çalışan bir komut dosyasını kullanıyorum, ancak programladığımda cron
dosyaları 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 mail
tarafı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.txt
Bulamaz , 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?
cron
kendine ait olur muPATH
yoksa kullanıcımı kontrol edebilir miyimPATH
? Ssmtp'yi , birinin kullanmasına izin vereceğini düşünerek (cron dahil), kendiuser
vewheel
izin için hazırladım . CENTOS 6.2 üzerinde Im yardımcı olursa