Wie schränke ich die Datei debug.log ein, während Bitcoin ausgeführt wird?

Die debug.logDatei wird ziemlich groß auf bitcoind. Wie begrenzen Sie die Größe der Datei? Ich bin auf Ubuntu 12.

Antworten (4)

Sie können logrotate verwenden.
Erstellen Sie eine Datei namens bitcoin-debug in /etc/logrotate.d.

Das ist der Inhalt:

/home/bitcoin/.bitcoin/debug.log
{
        drehen 36
        monatlich
        fehltok
        Benachrichtigungleer
        Kompresse
        verzögernkomprimieren
        gemeinsam genutzte Skripte
        nachrotieren
                kill -HUP `cat /home/bitcoin/.bitcoin/bitcoind.pid`
        Endskript
}

Ersetzen Sie /home/bitcoin/.bitcoin durch den tatsächlichen Pfad zu Ihrem Bitcoin-Verzeichnis.

Die vollständige Logrotate-Manpage finden Sie hier: http://manpages.ubuntu.com/manpages/jaunty/man8/logrotate.8.html

In Ubuntu verwaltet der Logrotate-Daemon viele verschiedene Protokolldateien. Im Ordner /etc/logrotate.d enthält jede Datei Anweisungen für den logrotate-Daemon. Das Hinzufügen dieser Datei teilt logrotate mit, dass Sie einmal im Monat eine neue Protokolldatei erstellen möchten. Die anderen Optionen weisen es an, die alten Protokolle nach einem Tag zu komprimieren und Protokolle nur für 36 Monate (3 Jahre) aufzubewahren.

Ich habe ursprünglich über diesen Thread von logrotate erfahren: https://bitcointalk.org/index.php?topic=130533.0

Eine andere zu beachtende Sache ist, dass, da dies das SIGHUP-Signal an den Bitcoin-Server sendet, es notwendig wird, gdb anzuweisen, das SIGHUP-Signal zu ignorieren, wenn Sie zufällig Bitcoin innerhalb von gdb ausführen :

gdb $HOME/.bitcoin/bitcoin-qt -ex 'handle SIGHUP nostop' -ex run

Ich verstehe nicht, wie das funktioniert. können Sie erklären. Danke!
Muss ich etwas tun, um den Daemon zu starten, oder beginnt er automatisch damit?
logrotate wird standardmäßig in Ubuntu ausgeführt, sodass Sie nichts anderes tun müssen, als Dateien zum Ordner /etc/logrotate.d hinzuzufügen.

Fügen -shrinkdebuglogSie die Optionen hinzu, die Sie zum Starten von Bitcoin verwenden, oder fügen shrinkdebuglog=1Sie Ihrer bitcoin.conf.

Wenn das Protokoll größer als 1 MB ist, wird es bei jedem Start auf 200 KB verkleinert.

Alternativ können Sie verwenden printtoconsole, um die Debug-Ausgabe anstelle der debug.logDatei auf die Konsole umzuleiten.

Da ich nicht genug Ruf habe, um einen Kommentar zu hsmiths (richtiger!) Antwort oben hinzuzufügen:

Ich fand, dass ich auch eine Zeile hinzufügen musste, um logrotate anzuweisen, Benutzer auf den Bitcoin-Benutzer umzuschalten (da ich bitcoind als seinen eigenen Benutzer ausführe), indem ich das Format verwende: su - $user $group. Auch als ich den systemd-Dienst gemäß dem Bitcoin-Github- Beispiel installiert habe, hatte ich einen anderen PID-Standort. Dabei entstand folgende /etc/logrotate.d/bitcoin-debugDatei:

/home/bitcoin/.bitcoin/debug.log
{
        rotate 36
        monthly
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts
        postrotate
                kill -HUP `cat /run/bitcoind/bitcoind.pid`
        endscript
        su - bitcoin bitcoin
}

Sie können logrotate mit neu starten sudo systemctl restart logrotate.serviceund anschließend mit den Status auf Fehler prüfensudo systemctl status logrotate.service

Kommentare sind nicht als getrennte Antworten zulässig, auch wenn Sie nicht über genügend Reputation verfügen, aber eine Ergänzung zu einer Antwort kann als Antwort gepostet werden - denke ich.