i使用linux中的 at
调度程序计划脚本。
工作正常,但是我将我重定向到文件的回声声明找不到。
AT调度命令如下:
at -f /app/data/scripts/func_test.sh >> /app/data/log/log.txt 2>&1 -v 09:50
任何人都可以指出上述命令的问题。
我看不到log.txt文件中的脚本中的任何回声语句
要包含shell语法,例如i/o重定向,您需要将其折叠到脚本中,或通过标准输入将输入传递给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
没有输出重定向,因为脚本本身已经将其所有输出重定向到该文件。