logger
irá ajudá-lo.
link
Eu tenho um pequeno Orange Pi One Server rodando o Armbian (baseado no Ubuntu) e ele tem um script que verifica se o servidor web rodando no Rasberry Pi2 rodando o LibreElec 8.0 está disponível e se não ligar o servidor (Rasberry Pi) controlado via Soquete de controle remoto de 433 Mhz através de um servidor web em uma unidade ESP8266. Todas as unidades estão na minha rede doméstica; sem acesso externo.
O script funciona bem quando eu o executo a partir da linha de comando - vejo o fluxo lógico, etc., e obtenho os resultados desejados. Eu tenho uma linha no meu crontab para executar o cheque na hora. No entanto, não vejo nenhuma saída no arquivo de log que eu especifiquei no redirecionamento na linha do meu crontab. Eu sei que a entrada crontab está sendo executada como um arquivo de log vazio é criado.
Esta é a linha no meu crontab. Estou tentando enviar a data e a hora e as mensagens para um arquivo, para saber se e quando os testes foram executados e as reinicializações iniciadas.
Eu percebo que a saída do wget é enviada para dev \ null, mas espero que meus comandos de eco sejam registrados. Estes descrevem o fluxo lógico no script que é o que eu gostaria de ser registrado.
59 0-23 * * */root/loftRPTCheck.sh | while IFS= read -r line; do echo "$(date) $line"; done >> /root/RPTloftlog.txt
Aqui está o comando que eu usei para executar a verificação manualmente e a saída no meu terminal PuTTY:
root@orangepione:~# ./loftRPTCheck.sh
--2017-05-18 21:05:05-- http://192.168.0.143:9091/
Connecting to 192.168.0.143:9091... connected.
HTTP request sent, awaiting response... Read error (Connection timed out) in headers.
Retrying.
--2017-05-18 21:05:13-- (try: 2) http://192.168.0.143:9091/
Connecting to 192.168.0.143:9091... connected.
HTTP request sent, awaiting response... Read error (Connection timed out) in headers.
Retrying.
--2017-05-18 21:05:22-- (try: 3) http://192.168.0.143:9091/
Connecting to 192.168.0.143:9091... connected.
HTTP request sent, awaiting response... Read error (Connection timed out) in headers.
Retrying.
--2017-05-18 21:05:32-- (try: 4) http://192.168.0.143:9091/
Connecting to 192.168.0.143:9091... connected.
HTTP request sent, awaiting response... Read error (Connection timed out) in headers.
Giving up.
wget to Loft RP Transmission failed
Power off Loft RP
--2017-05-18 21:05:39-- http://192.168.0.237/LOFTOFF
Connecting to 192.168.0.237:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘/dev/null’
/dev/null [ <=> ] 68 --.-KB/s in 0s
2017-05-18 21:05:41 (1.23 MB/s) - ‘/dev/null’ saved [68]
Sleep 10s
Power on Loft RP
--2017-05-18 21:05:51-- http://192.168.0.237/LOFTON
Connecting to 192.168.0.237:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘/dev/null’
/dev/null [ <=> ] 68 --.-KB/s in 0s
2017-05-18 21:05:54 (1.26 MB/s) - ‘/dev/null’ saved [68]
Sleep 20s
Retrying Loft Tranismission..
--2017-05-18 21:06:14-- http://192.168.0.143:9091/
Connecting to 192.168.0.143:9091... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: /transmission/web/ [following]
--2017-05-18 21:06:14-- http://192.168.0.143:9091/transmission/web/
Reusing existing connection to 192.168.0.143:9091.
HTTP request sent, awaiting response... 200 OK
Length: 24139 (24K) [text/html]
Saving to: ‘/dev/null’
/dev/null 100%[=====================================================>] 23.57K --.-KB/s in 0s
2017-05-18 21:06:14 (50.7 MB/s) - ‘/dev/null’ saved [24139/24139]
Restart worked ok.
Para que tudo fique bem, as mensagens são geradas quando são executadas a partir da linha de comando, mas não tenho certeza da melhor forma de registrar essa saída em um arquivo com a data e a hora no início de cada linha.
Este é o script de shell que é executado:
root@orangepione:~# cat loftRPTCheck.sh
wget --tries=4 --timeout=7 -O/dev/null http://192.168.0.143:9091
if [[ $? -ne 0 ]]; then
echo "wget to Loft RP Transmission failed"
echo "Power off Loft RP"
wget -O/dev/null http://192.168.0.237/LOFTOFF
echo "Sleep 10s"
sleep 10
echo "Power on Loft RP"
wget -O/dev/null http://192.168.0.237/LOFTON
echo "Sleep 20s"
sleep 20
echo "Retrying Loft Transmission.."
wget --tries=4 --timeout=7 -O/dev/null http://192.168.0.143:9091
if [[ $? -ne 0 ]]; then
echo "RP not restarted???"
else
echo "Restart worked ok."
fi
exit 1;
fi
Tags command-line bash cron linux ubuntu