Was ist / dev / null 2 & amp; 1?
Fand ich dieses Stück code in /etc/cron.täglich/apf
#!/bin/bash
/etc/apf/apf -f >> /dev/null 2>&1
/etc/apf/apf -s >> /dev/null 2>&1
Es ist eine Spülung und ein Neuladen der firewall.
Ich verstehe nicht, die >> /dev/null 2>&1
Teil.
Was ist der Zweck des habens dieser in der cron? Es ist überschreiben meine firewall-Regeln.
Kann ich sicher entfernen Sie diesen cron-job?
InformationsquelleAutor der Frage resting | 2012-05-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
>> /dev/null
leitet die Standardausgabe (stdout
)/dev/null
der verwirft es.(Die
>>
scheint irgendwie überflüssig, da>>
bedeutet append während>
bedeutet abschneiden und schreiben, und entweder Anhängen oder schreiben Sie/dev/null
hat den gleichen Effekt hat. Ich in der Regel verwenden Sie einfach>
aus diesem Grund.)2>&1
leitet die Standardfehlerausgabe (2
) auf der standard-Ausgabe (1
), die dann verwirft es als gut, da die standard-Ausgabe wurde bereits umgeleitet.InformationsquelleAutor der Antwort zigg
Let ' s break
>> /dev/null 2>&1
Anweisung in Teile:Teil 1:
>>
Ausgabe-UmleitungDiese wird verwendet, um die Umleitung der Ausgabe eines Programms und hängen Sie die Ausgabe an das Ende der Datei. Mehr...
Teil 2:
/dev/null
spezielle DateiDies ist ein Pseudo-devices special file.
Befehl
ls -l /dev/null
geben Sie details zu dieser Datei:Konntest du beobachten
crw
? Das heißt, es ist ein pseudo-Gerät - Datei, die von character-special-file - Typ, bietet seriellen Zugriff.Teil 3:
2>&1
Datei-DeskriptorWenn Sie ein Programm ausführen, das Betriebssystem öffnet sich immer drei Dateien
STDIN
STDOUT
undSTDERR
wie wir wissen, wenn eine Datei geöffnet ist, wird Betriebssystem (ab kernel) liefert eine nicht-negative ganze Zahl ist genannt als Datei-Deskriptor. Der Datei-Deskriptor für diese Dateien sind 0, 1, 2 jeweils.So
2>&1
sagt einfach umleitenSTDERR
zuSTDOUT
Kurz gesagt, mit diesem Befehl teilen Sie dem Programm nicht zu Schreien, während der Ausführung.
Was ist die Bedeutung der Verwendung von
2>&1
?Wenn Sie wollen keine Ausgabe erzeugen, auch im Fall, dass einige Fehler produziert in der Klemme. Um deutlicher erklären, betrachten wir das folgende Beispiel:
Für die oben genannten Befehl keine Ausgabe war gedruckt im terminal, aber was ist, wenn dieser Befehl einen Fehler erzeugt:
Trotz bin ich umleiten der Ausgabe zu
/dev/null
es ist gedruckt in der Klemme. Es ist, weil wir nicht umleiten der Fehlerausgabe zu/dev/null
also um die Umleitung der Fehlerausgabe als gut, es ist erforderlich, um2>&1
InformationsquelleAutor der Antwort Vishrant
Dies ist der Weg, um ein Programm auszuführen ruhig, und verstecken Sie alle Ihre Ausgabe.
/dev/null
ist ein spezielles Dateisystem-Objekt, das wirft alles Weg, was in es geschrieben. Umleiten eines Baches in es bedeutet das verbergen einer Ausgabe.Den
2>&1
Teil heißt "redirect sowohl die Ausgabe und die Fehler-streams". Auch wenn Ihr Programm schreibtstderr
dass die Ausgabe nicht angezeigt.InformationsquelleAutor der Antwort dasblinkenlight
/dev/null
- standard-Datei, verwirft alles, was Sie schreiben, aber die Berichteder Schreibvorgang erfolgreich war.
1
stdout und2
ist stderr.2>&1
leitet stderr nach stdout.&1
zeigt an file-descriptor(stdout), ansonsten(wenn Sie nur1
) Sie werden umleiten von stderr zu Datei namens1
.[any command] >>/dev/null 2>&1
leitet alle stderr nach stdout und schreibt alle, dass/dev/null
.InformationsquelleAutor der Antwort Iurii
Benutze ich
>> /dev/null 2>&1
für silent cronjob, cronjob wird den job tun, aber nicht senden Bericht an meine E-Mail.Soweit ich weiß, nicht entfernen
/dev/null
es ist nützlich, vor allem, wenn Sie mit cpanel, können verwendet werden, zum wegwerfen cronjob Bericht.InformationsquelleAutor der Antwort Christian
Wie beschrieben von den anderen, schreiben nach /dev/null entfällt die Ausgabe von einem Programm. In der Regel cron sendet eine E-Mail für jede Ausgabe, die aus dem Prozess begann mit einem cronjob. Also durch das schreiben der Ausgabe nach /dev/null Sie verhindern, dass Spam -, wenn Sie angegeben haben, zu Ihrer Adresse in der cron.
InformationsquelleAutor der Antwort FSMaxB
Bearbeiten
/etc/conf.apf
. SetDEVEL_MODE="0"
.DEVEL_MODE
eingestellt1
hinzufügen eines cron-Jobs zu stoppen apf nach 5 Minuten.InformationsquelleAutor der Antwort dstonek