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

30

Bir cron işi ayarladım:

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

Temel sorun, program zamanında, bir hatanın olmasıdır: "posta / var / spool / mail / şanslıya gönderildi".

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

mkdir jh
cd jh 
    
sordu Abhishek Tripathi 27.09.2013 20:17

2 cevap

45

Bu, bir cron işi olarak ayarlanmış bir komut dosyası için uygun değil:

mkdir jh
cd jh 

jh dizininin oluşturulması gereken tam yolu vermelisiniz. Ayrıca, bu yolda yeni dosya / dizin 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/sh , sh için doğru yol değil. Doğru yol /bin/sh . Bunu whereis sh komutuyla kontrol edebilirsiniz. Ve yine de, cron işin şöyle görünmeli:

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

Komut dosyasını çalıştırmayı unutmayın:

chmod +x /home/lucky/myfile.sh
    
verilen cevap Radu Rădeanu 27.09.2013 21:42
5

Bunun, klasörü oluştururken göründüğü yol / . Bunun nedeni, crontab 'si, çalıştırdığı tüm dosyalarda klasöre ve dosyalara tam yol gerektiriyor.

Dolayısıyla, myfile.sh dosyasındaki yolun

olması gerekir

mkdir <absolutePath>/jh

cd <absolutePath>/jh

20 * * * * /usr/bin/sh /home/lucky/myfile.sh Bu satırın doğru olmasına rağmen, / usr / bin / sh öğesinde var olup olmadığına bakma yolunu kontrol etmelisiniz (şunun var olduğu yolu görmek için which sh kullanın; benim / bin / sh'm)

Eğer crontab yazmaya başlamak için aceleniz varsa bu linkin oldukça iyi örnekleri var.

İşte

    
verilen cevap penguinRaider 27.09.2013 21:53

Etiketlerdeki diğer soruları oku