Tail-Programmausgabe in eine Datei unter Linux

Tail-Programmausgabe in eine Datei unter Linux

Ich weiß, dass wir das folgende Format verwenden können, um die Bildschirmausgabe in eine Datei umzuleiten:

$ your_program > /tmp/output.txt

Wenn ich jedoch den folgenden Befehl verwende, heißt es„-bash: /home/user/errors.txt: Zugriff verweigert“

sudo tail /var/log/apache2/error.log > ~/errors.txt

Kann ich wissen, wie ich diese Ausgabe zum Laufen bringe? Die Datei ~/errors.txt existiert nicht. Muss ich diese txt-Datei erst erstellen, bevor ich den Umleitungsbefehl verwende?

Antwort1

Hinter der Pipe funktioniert das Sudo nicht. Ich weiß nicht, warum Sie nicht in Ihr Home schreiben können – vielleicht gehört die Datei zu root?

 sudo tail /var/log/apache2/error.log | sudo tee ~/errors.txt

Möglicherweise benötigen Sie einen anderen Benutzer hinter der Pipe. Sie benötigen auf jeden Fall keine bereits vorhandene Datei.

Antwort2

Wenn Sie schreiben sudo somecommand > ~/errors.txt, ist die aufrufende Shell sudo(die unter Ihrem Namen ausgeführt wird) diejenige, die die Umleitung und das Öffnen durchführt ~/errors.txt. SieheUmleiten von stdout zu einer Datei, für die Sie keine Schreibberechtigung haben. Normalerweise besteht das Problem in diesem Fall darin, dass Sie möchten, dass Root in die Datei schreibt. Informationen dazu finden Sie in der verlinkten Frage.

Hier ist es seltsam, dass Sie nicht in eine Datei in Ihrem Home-Verzeichnis schreiben können. Wahrscheinlich haben Sie zuvor als Root eine Ausgabe in gespeichert /home/user/errors.txt, und diese Datei existiert jetzt und gehört Root. Entfernen Sie die Datei (das können Sie tun, solange Sie Schreibberechtigung für haben /home/user), und dann können Sie sie als Ihr Benutzer erstellen.

rm ~/errors.txt
sudo tail /var/log/apache2/error.log > ~/errors.txt

Wenn die Datei wirklich nicht existiert, haben Sie keine Schreibberechtigung für Ihr Home-Verzeichnis. Obwohl dies technisch möglich und für einige eingeschränkte Benutzer tatsächlich gelegentlich nützlich ist, ist es sehr ungewöhnlich.

verwandte Informationen