在命令似乎是丢弃输出

Debian Jessie或者Raspbian Jessie上运行'at',输出似乎无论我做什么事情都会陷入黑洞。 我想捕捉错误,但即使在标准输出的简单情况下,我似乎无法捕获输出。

我正在尝试,例如:

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

tmp.log总是空的,但是没有通过相同的curl产生预期的html。 如果我省略-MI什么也得不到。

我真正想要的是错误输出。 如果我尝试

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

我得到一个空的tmp.log; 如果我省略-MI获得一个空的电子邮件。 如果我省略redirect,则:

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

我也收到一封空邮件。 我期望看到curl: (6) Could not resolve host: badbadbad.example.com

/ var / log中没有syslog,messages或daemon.log。 我以普通用户身份运行命令,而不是root。

at似乎劫持和放弃每一个尝试从我正在运行的命令获得输出。 我误解了什么?

您正在尝试pipe道| 您的命令的输出 ,而不是给它在指定的时间运行的命令at从标准input( at>提示符)或从文件( -f )读取命令。 概要:

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

这里有一个很好的文章和使用示例 。