现在我有一个脚本 start.sh
来启动我的应用程序:
java -Dlog4j.configuration=file:~/log4j.xml -Xmx2048m -jar ~/myapp.jar
然后我将此脚本添加到 crontab
以使其成为计划作业:
15 05 * * 1-5 /home/me/start.sh >> /home/me/cronlog/$(date +"\%F")-start.log 2>&1
将 start.sh
的输出重定向到具有日期格式名称的单独文件
现在,我想使用 nohup
并将重定向命令放入 start.sh
脚本而不是 crontab
所以 crontab
看起来很干净:
15 05 * * 1-5 /home/me/start.sh
而在start.sh
中,经过测试应该是:
nohup java -Dlog4j.configuration=file:~/log4j.xml -Xmx2048m -jar ~/myapp.jar > ~/cronlog/$(date +"%F")-nohup.log 2>&1 &
这是我的问题:
为什么在
crontab
中需要反斜杠\
而在新的start.sh
脚本中却不需要?如果以
2>&1 &
结尾,我想将每个输出记录到文件中,包括异常或错误。最后一个&
来自nohup
。那么2>&1
和 '&` 到底是什么意思?
最佳答案
2>&1 表示“在标准输出上重定向标准错误”
http://www.tldp.org/LDP/abs/html/io-redirection.html
正如您在该页面中看到的那样,数字是指操作系统用来指向资源的文件描述符(stderr、stdout),&> 是重定向运算符。
关于linux - 使用 crontab & nohup 将输出重定向到具有日期格式名称的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25323800/