Bir kabuk betiğini çalıştırmak için bir cron işi nasıl ayarlanır?


44

Bir cron işi ayarlamıştım:

20 * * * * /usr/bin/sh /home/lucky/myfile.sh

Asıl sorun, zamanlama zamanında, bir hata oluşmasıdır: "posta / var / spool / mail / lucky adresine gönderildi".

Myfile.sh dosyasının içeriği:

mkdir jh
cd jh 


2
dosyam.sh çalıştırılabilir olarak ayarlandıysa?
rogerdpack

Yanıtlar:


60

Bir cron işi olarak ayarlanmış bir betik için uygun değil:

mkdir jh
cd jh 

jhDizinin oluşturulması gereken tam yolu vermelisiniz. Ayrıca, bu yolda yeni dosyalar / dizinler oluşturma izniniz olmalıdır.

Örneğin, komut dosyanız şöyle görünmelidir:

#!/bin/sh

mkdir /home/lucky/jh
cd /home/lucky/jh

Ayrıca /usr/bin/shdoğru yol değil sh. Doğru yol /bin/sh. Bunu whereis shkomutla kontrol edebilirsiniz . Ve yine de, cron işin şöyle görünmeli:

20 * * * * /home/lucky/myfile.sh

Komut dosyasını çalıştırılabilir hale getirmeyi unutmayın:

chmod +x /home/lucky/myfile.sh

Awsome, hayatımı kurtardı :) Mine bu şekilde iyi çalışıyor. 0 7 * * * / bin / sh / kök / Betik / komut / komut.sh> / dev / null 2> & 1
Louwki

5

Bunun klasörü oluşturuyor gibi göründüğü yol /. Bunun nedeni, çalıştırdığı tüm dosyalarda klasöre ve dosyalara tam yolcrontab gerektirmesidir .

Yani myfile.sh içindeki yol olmalıdır

mkdir <absolutePath>/jh

cd <absolutePath>/jh

20 * * * * /usr/bin/sh /home/lucky/myfile.shBu satır doğrudur, ancak sh / usr / bin / sh konumunda sh olup olmadığını görmek için yolu kontrol etmelisiniz ( which shsh'nin bulunduğu yolu görmek için kullanın ; benimki / bin / sh)

Crontab yazmaya başlamak için acele ediyorsanız, bu bağlantının oldukça iyi örnekleri var

http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.