При запуске «на» либо в 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
Вот хороший статья с примерами использования.