crontab中0/1/2信号都是干啥的

bash中0,1,2三个数字分别代表STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO,即标准输入(一般是键盘),标准输出(一般是显示屏,准确的说是用户终端控制台),标准错误(出错信息输出)。第一个我也不知道是个啥

有几点需要注意的:

1、经常看到 2>&1 &。2>&1就是用来将标准错误2重定向到标准输出1中的。此处1前面的&就是为了让bash将1解释成标准输出而不是文件1。至于最后一个&,则是让bash在后台执行。但是不能写成2>>&1,这样crontab是不会运行的,至于为啥我也不知道。

下面有个demo,防止我们运行的时候出错:

crontab里面这么写:

*/1 * * * * export l_day=`date -d "-1 day" +\%Y-\%m-\%d` && cd /home/users/test/tmp/script/ && sh ./test.sh $l_day $l_day 1>>/home/users/test/tmp/script/log/test.log 2>&1 &

test.sh文件这么写:

#!/bin/bash
arg1=$1
arg2=$2
echo $arg1" <-> "$arg2

ok,就先这么记录着吧,折腾我好长时间。。。shit
此条目发表在 bash 分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*


*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>