Cron Job: Redirecionando a saída do script de shell para um arquivo

1

Apenas um script de shell de uma linha abaixo não funciona como um cron job, mas a execução direta do terminal funciona bem:

#!/bin/bash

echo "Executed" >> ./crond.log 2>&1

Qual pode ser o problema?

Verificado / var / log / cron e cron localizado está chutando a tarefa no tempo:

May 16 10:30:01 vagrant-centos64 CROND[3015]: (root) CMD (sh /vagrant/my.sh)
May 16 10:35:01 vagrant-centos64 CROND[3122]: (root) CMD (sh /vagrant/my.sh)
May 16 10:40:01 vagrant-centos64 CROND[3189]: (root) CMD (sh /vagrant/my.sh)
May 16 10:45:01 vagrant-centos64 CROND[3270]: (root) CMD (sh /vagrant/my.sh)
May 16 10:50:01 vagrant-centos64 CROND[3343]: (root) CMD (sh /vagrant/my.sh)
May 16 10:55:01 vagrant-centos64 CROND[3430]: (root) CMD (sh /vagrant/my.sh)

A listagem de empregos do Crontab é como abaixo:

*/5 * * * * sh /vagrant/mypagelogin.sh
*/5 * * * * sh /vagrant/my.sh
[root@vagrant-centos64 vagrant]#

A permissão de acesso para crond.log é:

-rwxrwxrwx 1 vagrant vagrant 0 May 16 10:51 crond.log

UPDATE: o arquivo crond.log está localizado no mesmo local que my.sh. [/ vagrant]

    
por Rahman 16.05.2016 / 12:56

2 respostas

5

Primeira regra de crond club: você não assume o diretório de trabalho. Meu palpite é que você encontrará um crond.log em /root . Se você quiser em /vagrant , redirecione explicitamente a saída para /vagrant/crond.log .

(FWIW, a segunda regra de crond club é: não assuma que exista algo em seu PATH , use caminhos explícitos para binários, mas como echo também é um bom bocado, você está bem aquele.)

    
por 16.05.2016 / 13:09
1

Está escrito, mas não onde você está procurando. A melhor maneira é usar caminhos absolutos.

    
por 16.05.2016 / 13:09

Tags