Назад | Перейти на главную страницу

at команда, похоже, отбрасывает вывод

При запуске «на» либо в Debian Jessie, либо в Raspbian Jessie вывод, кажется, уходит в черную дыру, что бы я ни делал. Я хочу фиксировать ошибки, но даже в простом случае stdout я не могу фиксировать вывод.

Я, например, пытаюсь:

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

tmp.log всегда пуст, но тот же curl не пройти at производит ожидаемый html. Если я опущу -M, я ничего не получу.

Что мне действительно нужно, так это вывод ошибок. Если я попробую

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

Я получаю пустой журнал tmp.log; и если я опущу -M, я получу пустой адрес электронной почты. Если я опущу перенаправления, то:

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

Я также получаю пустое электронное письмо. Я ожидал увидеть curl: (6) Could not resolve host: badbadbad.example.com

Нет ничего в syslog, messages или daemon.log в / var / log. Я запускаю команды как обычный пользователь, а не как root.

at похоже, захватывает и отбрасывает все попытки получить выходные данные от выполняемой мной команды. Я что-то неправильно понимаю at?

Вы пытаетесь трубить | то вывод ваших команд at вместо того, чтобы дать ему команды для запуска в указанное время. at читает команды со стандартного ввода (at> подсказка) или из файла (-f). Синопсис:

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

Вот хороший статья с примерами использования.