现在我有一个脚本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
和'&`究竟是什么意思?
答案 0 :(得分:0)
2>& 1表示"重定向标准输出的标准错误"
http://www.tldp.org/LDP/abs/html/io-redirection.html
正如您在该页面中看到的那样,数字指的是操作系统用来指向资源的文件描述符(stderr,stdout)和&>是一个重定向操作符。