347

/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に含める目的は何ですか? ファイアウォール ルールを上書きしています。この cron ジョブを安全に削除できますか?

4

8 に答える 8

480

>> /dev/nullstdout標準出力 ( ) をにリダイレクトし/dev/null、それを破棄します。

( append whileは切り捨てと書き込みを意味し、append と write のどちらも最終的には同じ効果があるため>>、これは余分なように思えます。私は通常、その理由で使用します。)>>>/dev/null>

2>&1標準エラー ( 2) を標準出力 ( 1) にリダイレクトします。標準出力は既にリダイレクトされているため、標準出力も同様に破棄されます。

于 2012-05-09T01:49:42.013 に答える
85

これは、プログラムを静かに実行し、そのすべての出力を隠す方法です。

/dev/null書き込まれたものをすべて破棄する特別なファイルシステム オブジェクトです。ストリームをそこにリダイレクトするということは、プログラムの出力を隠すことを意味します。

その2>&1部分は「エラーストリームを出力ストリームにリダイレクトする」ことを意味するため、出力ストリームをリダイレクトすると、エラーストリームもリダイレクトされます。プログラムが now に書き込みを行っstderrたとしても、その出力も同様に破棄されます。

于 2012-05-09T01:49:13.433 に答える
22

/dev/nullは、書き込みをすべて破棄する標準ファイルですが、書き込み操作が成功したことを報告します。

1は標準出力であり、2標準エラーです。

2>&1標準エラーを標準出力にリダイレクトします。&1はファイル記述子 (標準出力) を示します。それ以外の場合 (単に を使用する場合)、1標準エラーを という名前のファイルにリダイレクトします1[any command] >>/dev/null 2>&1すべての標準エラーを標準出力にリダイレクトし、そのすべてを に書き込みます/dev/null

于 2015-03-10T12:40:48.647 に答える
2

他の人が説明しているように、/ dev / nullに書き込むと、プログラムの出力が削除されます。通常、cronは、cronjobで開始されたプロセスからのすべての出力に対して電子メールを送信します。したがって、出力を/ dev / nullに書き込むことにより、cronでアドレスを指定した場合にスパムが送信されるのを防ぐことができます。

于 2012-10-03T20:13:31.117 に答える
-2

編集し/etc/conf.apfます。設定しDEVEL_MODE="0"ます。DEVEL_MODEに設定する1と、5 分後に apf を停止する cron ジョブが追加されます。

于 2013-04-15T23:01:11.860 に答える