crontab está dando apenas 2045 linhas de saída em vez de 6000 linhas

1

Estou executando um script de shell com o crontab, que tem que fornecer mais de 6.000 linhas de saída, apenas dando saída a 2045 linhas e saindo. quando eu executo aquele script de shell ele está funcionando dando mais de 6000 linhas

Meu script não está tendo erros quando executado do bash. Mas quando eu executo o crontab, ele redireciona a saída para apenas 2045 ou 2046 linhas.

meu arquivo de script é com a seguinte linha /script/scriptip.sh

#!/bin/bash
awk '$2 ~ /10.169/ || $2 ~ /10.170/ {print $2}' /script/iplist.txt > /script/ipid.txt

meu iplist.txt terá 18 mil linhas de texto

e minha entrada no crontab é

 * * * * * /script/scriptip.sh

eu corro manualmente com

./script/scriptip.sh
    
por kotesh 25.02.2014 / 14:13

1 resposta

1

OK, acho que o problema é a diferença entre caminhos absolutos e relativos. Você não nos deu muito para continuar, mas acredito que você tenha um diretório em $HOME chamado script e é aí que você mantém seus scripts.

Então, você abre um terminal (isso abre no seu $HOME por padrão) e executa

./script/scriptip.sh

. significa seu diretório atual, então o comando acima é executado

/home/kotesh/script/scriptip.sh

No entanto, no seu crontab , você precisa usar um caminho absoluto, pois ele não será iniciado a partir do diretório $HOME . Tente substituir sua linha cron por essa que usa o caminho absoluto:

 * * * * * /home/kotesh/script/scriptip.sh

Verifique também se você está usando caminhos absolutos no próprio script:

#!/usr/bin/env bash
awk '$2 ~ /10.169/ || $2 ~ /10.170/ {print $2}' /home/kotesh/script/iplist.txt > /home/kotesh/script/ipid.txt
    
por 25.02.2014 / 16:18