使用crontab& amp;将输出重定向到具有日期格式名称的文件。 nohup的

时间:2014-08-15 09:00:11

标签: linux bash shell cron nohup

现在我有一个脚本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 &

这是我的问题:

  1. 为什么在crontab中需要反斜杠\,但在新的start.sh脚本中,是否需要它?

  2. 我想将每个输出记录到文件中,包括异常或错误,如果它以2>&1 &结尾。最后一个&来自nohup。那么2>&1和'&`究竟是什么意思?

1 个答案:

答案 0 :(得分:0)

2>& 1表示"重定向标准输出的标准错误"

http://www.tldp.org/LDP/abs/html/io-redirection.html

正如您在该页面中看到的那样,数字指的是操作系统用来指向资源的文件描述符(stderr,stdout)和&>是一个重定向操作符。