1

at我在 linux 中使用调度程序安排了一个脚本。

作业运行良好,但我重定向到文件的回显语句找不到。

at调度命令如下:

at -f /app/data/scripts/func_test.sh >> /app/data/log/log.txt 2>&1 -v 09:50

谁能指出上述命令的问题。

我在 log.txt 文件中的脚本中看不到任何回显语句

4

1 回答 1

3

要包含像 I/O 重定向这样的 shell 语法,您需要将其折叠到您的脚本中,或者at通过标准输入将输入传递给,如下所示:

at -v 09:50 <<EOF
sh /app/data/scripts/func_test.sh >> /app/data/log/log.txt 2>&1
EOF

如果func_test.sh已经可以执行,则可以省略sh命令开头的 ;它可以确保您将有效的命令行传递给at.

您还可以简单地确保您的脚本本身将其所有输出重定向到特定的日志文件。举个例子,

#!/bin/bash

echo foo
echo bar

变成

#!/bin/bash

{ 
echo foo
echo bar
} >> /app/data/log/log.txt 2>&1

然后你可以简单地运行你的脚本at使用

at -f /app/data/scripts/func_test.sh -v 09:50

没有输出重定向,因为脚本本身已经将其所有输出重定向到该文件。

于 2014-01-28T16:03:02.763 回答