我在/etc/cron.daily/apf中找到了这段代码

#!/bin/bash  
/etc/apf/apf -f >> /dev/null 2>&1  
/etc/apf/apf -s >> /dev/null 2>&1  

它正在刷新并重新加载防火墙。 我不明白>> /dev/null 2>&1部分。

在监狱里放这个有什么用?它覆盖了我的防火墙规则。 我可以安全地删除这个cron作业吗?


当前回答

这是安静地执行程序并隐藏其所有输出的方法。

/dev/null是一个特殊的文件系统对象,它会丢弃写入其中的所有内容。将流重定向到它意味着隐藏程序的输出。

2>&1部分表示“将错误流重定向到输出流”,因此当您重定向输出流时,错误流也会被重定向。即使您的程序现在写入stderr,输出也会被丢弃。

其他回答

这是安静地执行程序并隐藏其所有输出的方法。

/dev/null是一个特殊的文件系统对象,它会丢弃写入其中的所有内容。将流重定向到它意味着隐藏程序的输出。

2>&1部分表示“将错误流重定向到输出流”,因此当您重定向输出流时,错误流也会被重定向。即使您的程序现在写入stderr,输出也会被丢弃。

正如其他人所描述的,写入/dev/null消除了程序的输出。通常cron会为由cronjob启动的进程的每个输出发送一封电子邮件。因此,通过将输出写入/dev/null,如果您在cron中指定了您的地址,则可以防止收到垃圾邮件。

而不是使用>/dev/null 2>&1 你可以使用:wget -O /dev/null -O /dev/null example.com吗

我在其他论坛上看到的是。这里-O将下载的文件发送到/dev/null, -O日志发送到/dev/null,而不是stderr。这种方式根本不需要重定向。”

另一个解决方案是:wget -q——spider mysite。com

https://serverfault.com/questions/619542/piping-wget-output-to-dev-null-in-cron/619546#619546

/dev/null是一个标准文件,它丢弃所有写入文件,但报告写入操作成功。

1为标准输出,2为标准误差。

2>&1重定向标准错误到标准输出。&1表示文件描述符(标准输出),否则(如果只使用1)将标准错误重定向到名为1的文件。>>/dev/null 2>&1将所有标准错误重定向到标准输出,并将所有标准错误写入/dev/null.

编辑/etc/conf.apf.设置DEVEL_MODE = " 0 "。DEVEL_MODE设置为1将在5分钟后添加一个cron作业来停止apf。