script rodando em crontab não dando saída na tela shell

3

Estou tentando executar um script de eco simples via crontab. Eu configurei isso para rodar a cada minuto, mas não dá saída na tela do shell. No entanto, ele funciona bem quando eu corro o script de forma independente.

Script

#!/bin/bash
echo "Test Script"

Entrada do Crontab:

root@example-server ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
  *  *  *  *  * root /root/test.sh
    
por Todd Goodfellow 20.06.2015 / 02:07

2 respostas

1

A saída de um cron job não vai para a sua tela. Não pode - você pode nem estar logado no momento em que o trabalho é executado!

A saída de uma tarefa cron é enviada por email. Um sistema unix funcional sempre tem um recurso de email local, que é independente de uma conexão de rede. Se você quiser que seu e-mail local seja enviado para uma conta remota, crie um arquivo .forward em seu diretório pessoal contendo o endereço de e-mail remoto. Algumas distribuições não configuram e-mail local por padrão , Nesse caso, a saída do cron desaparece em um buraco negro. Você precisa de um agente de transferência de e-mail para entregar e-mails locais. Em uma máquina individual, configure-a para não aceitar conexões de entrada da rede (a maioria das distribuições tem uma maneira fácil de configurar isso). MTAs comuns incluem Exim e Postfix; se sua distribuição tiver um MTA padrão, basta selecioná-lo.

    
por 21.06.2015 / 18:28
0

você deve redirecionar a saída do eco para determinado arquivo

1.- execute este comando: tty

Ele vai te dizer algo como / dev / pts / X Verifique o número X

2.- modifique seu cron job com o comando

crontab -e

* / 1 * * * * echo "Olá a cada minuto" > / dev / pts / X

E isso é tudo amigo.

    
por 26.04.2018 / 05:58