Eu havia definido um trabalho cron:
20 * * * * /usr/bin/sh /home/lucky/myfile.sh
O principal problema é que, no horário do agendamento, existe um erro: "o correio foi enviado para / var / spool / mail / lucky".
O conteúdo do myfile.sh é:
mkdir jh
cd jh
Respostas:
Isso não está correto para um script definido como um trabalho cron:
Você deve fornecer o caminho completo em que o
jh
diretó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:
Também
/usr/bin/sh
não é o caminho certo parash
. O caminho certo é/bin/sh
. Você pode verificar isso com owhereis sh
comando E mesmo assim, seu trabalho cron deve ter a seguinte aparência:Não se esqueça de tornar o script executável:
fonte
O caminho em que isso parece estar criando a pasta é
/
. Isso ocorre porquecrontab
requer 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.sh
Essa linha está correta, mas você deve verificar o caminho para ver se sh existe em / usr / bin / sh ou não (usewhich sh
para 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/
fonte