Como definir um trabalho cron para executar um script de shell?


Respostas:


61

Isso não está correto para um script definido como um trabalho cron:

mkdir jh
cd jh 

Você deve fornecer o caminho completo em que o jhdiretório deve ser criado. Além disso, nesse caminho, você deve ter permissão para criar novos arquivos / diretórios.

Por exemplo, seu script deve se parecer com:

#!/bin/sh

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

Também /usr/bin/shnão é o caminho certo para sh. O caminho certo é /bin/sh. Você pode verificar isso com o whereis shcomando E mesmo assim, seu trabalho cron deve ter a seguinte aparência:

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

Não se esqueça de tornar o script executável:

chmod +x /home/lucky/myfile.sh

Awsome, salvou minha vida :) O meu funciona bem assim. 0 7 * * * / bin / sh /root/Scripts/command.sh> / dev / null 2> & 1
Louwki 15/16

5

O caminho em que isso parece estar criando a pasta é /. Isso ocorre porque crontabrequer o caminho completo para a pasta e os arquivos em todos os arquivos que ele executa.

Portanto, o caminho no myfile.sh deve ser

mkdir <absolutePath>/jh

cd <absolutePath>/jh

20 * * * * /usr/bin/sh /home/lucky/myfile.shEssa linha está correta, mas você deve verificar o caminho para ver se sh existe em / usr / bin / sh ou não (use which shpara ver o caminho em que sh existe; o meu era / bin / sh)

Se você está com pressa de começar a escrever crontab, este link tem bons exemplos

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.