CRON日志条目中>/dev/null 2>/dev/null的含义是什么?
重定向语法含义说明
你提到的日志条目内容:
CRON[3304]: (root) CMD ( /usr/bin/php /home/app/foxorders/scripts/restart_apache.php >/dev/null 2>/dev/null)
其中的>/dev/null 2>/dev/null是Linux Shell环境下的标准输出重定向语法,作用是丢弃命令执行产生的所有输出内容,具体拆解如下:
- 基础规则:Shell默认定义了3个标准输入输出文件描述符
- 描述符
0:标准输入(stdin),默认读取键盘输入内容 - 描述符
1:标准输出(stdout),默认将正常执行结果输出到终端 - 描述符
2:标准错误(stderr),默认将执行报错信息输出到终端
- 描述符
>/dev/null是1>/dev/null的简写,含义是把命令的标准输出内容重定向写入/dev/null。/dev/null是Linux系统的特殊空设备文件,所有写入该文件的数据都会被直接丢弃,不会持久化存储也不会打印到终端。2>/dev/null的含义是把命令的标准错误输出内容也重定向到/dev/null丢弃。- 组合使用的效果:这条PHP脚本执行过程中产生的所有正常输出、报错信息都会被全部丢弃,不会有任何内容输出到终端或者日志文件。
在你给出的cron定时任务场景下,加这串语法的主要作用是避免定时任务输出内容触发cron默认的邮件通知,减少无用系统邮件和资源占用。
内容的提问来源于stack exchange,提问作者Amine Aqil
相关产品推荐
相关产品推荐

