no comando parece estar descartando a saída

1

Rodando 'at' no Debian Jessie ou no Raspbian Jessie, a saída parece cair em um buraco negro, qualquer coisa que eu faça. Eu estou querendo capturar erros, mas mesmo no caso simples de stdout eu não consigo capturar a saída.

Estou tentando, por exemplo:

echo "curl 'http://www.example.com' > tmp.log" | at -M -t 201706042241.36

tmp.log está sempre vazio, mas o mesmo curl não colocado em at produz o html esperado. Se eu omitir o -M eu não recebo nada.

O que eu realmente quero é a saída do erro. Se eu tentar

echo "curl 'http://badbadbad.example.com' 2>&1 > tmp.log" | at -M -t 201706042241.36

Eu recebo um tmp.log vazio; e se eu omitir -M eu recebo um email vazio. Se eu omitir os redirecionamentos, assim:

echo "curl 'http://badbadbad.example.com'" | at -t 201706042241.36

Eu também recebo um email vazio. Eu esperaria ver curl: (6) Could not resolve host: badbadbad.example.com

Não há nada no syslog, mensagens ou daemon.log em / var / log. Estou executando os comandos como um usuário comum, não como root.

at parece seqüestrar e descartar todas as tentativas de obter a saída do comando que estou executando. Eu estou entendendo mal algo sobre at ?

    
por user1247280 05.06.2017 / 16:17

1 resposta

1

Você está tentando canalizar | a saída de seus comandos para at ao invés de dar a ele os comandos para serem executados no horário especificado. at lê os comandos da entrada padrão ( at> prompt) ou de um arquivo ( -f ). Sinopse:

at [-V] [-q queue] [-f file] [-mldbv] TIME
at [-V] [-q queue] [-f file] [-mldbv] -t time_arg

Veja um bom artigo com exemplos de uso .

    
por 05.06.2017 / 23:18

Tags