problema com endereço IP de eco

0

Estou tentando criar um script básico que será executado a cada minuto do cron. Script script.sh é:

#!/bin/bash
DATE='date +"%Y-%m-%d %H:%M:%S"'
IP='ifconfig | grep "inet addr" | awk --field-separator ':' '{print $2}' | awk '{print $1}' | head -1'
echo "$DATE $IP" >> test.log

Quando executo este script digitando " ./script.sh ", eu tenho o endereço IP no test.log em tal formato ( e está tudo bem ):

2017-11-08 16:33:33 10.0.0.1
2017-11-08 16:34:33 10.0.0.1
2017-11-08 16:35:33 10.0.0.1

No entanto, quando eu crio esse trabalho do cron:

* * * * * /path/to/my/script.sh

No test.log eu tenho apenas a data:

2017-11-08 16:36:13
2017-11-08 16:37:13
2017-11-08 16:38:13

Mas por quê? Por que não tenho um endereço IP interno? Você tem alguma ideia?

    
por Rafal Iwaniak 08.11.2017 / 16:39

1 resposta

4

date é provavelmente /bin/date e está em o padrão $PATH para trabalhos agendados , que não é o mesmo que o $PATH definido no login do usuário.

ifconfig é provavelmente /sbin/ifconfig , o que não está no $PATH .

Altere ifconfig para um caminho completo explícito (como /sbin/ifconfig ) para executar ifconfig dentro de um cron.

    
por 08.11.2017 / 16:50