Ich habe das folgende Protokollierungsskript:
#!/bin/bash
top -b -c -n 1 >> /var/log/toplog/top.log
Und die folgende Aufzeichnung in meiner Crontab:
*/1 * * * * /home/clime/scripts/toplog.sh
Das Problem ist, dass die Zeilen in top.log auf 80 Zeichen gekürzt werden, z.
1512 root 20 0 80756 1436 572 S 0.0 0.1 0:05.92 /usr/libexec/postfi
Dies passiert nicht, wenn ich den Befehl direkt von der Konsole aus ausführe.
Ich habe versucht, die Variable COLUMNS zu verwenden:
*/1 * * * * COLUMNS=999 /home/clime/scripts/toplog.sh
Aber das führt dazu, dass jede Zeile genau 999 Zeichen lang ist - unbenutztes Leerzeichen wird mit Leerzeichen aufgefüllt, was ich nicht möchte.
Wie kann ich dieses seltsame Problem beheben? Mein System ist Centos 6.3.
/1
? Funktioniert es, wenn Sie einfach verwenden* * * * *
?*/1
und*
beide bedeuten jede Minute laufen./1
muss nicht da sein. Ich habe es geändert. Das Problem besteht jedoch weiterhin.Antworten:
top
Zeigt immer Leerzeichen bis zur letzten Bildschirmspalte an. Sie erkennen es einfach nicht, wenn auf dem Terminal gedruckt wird, da Sie eine Zeile mit nachgestellten Leerzeichen nicht visuell von einer Zeile ohne nachfolgendes Leerzeichen unterscheiden können. Sie werden die Leerzeichen bemerken, wenn Sie mit der Maus oder in kopieren und einfügenscreen
.Wenn Sie die Leerzeichen entfernen möchten, filtern Sie sie einfach weg.
Was auch immer Sie suchen
top
, es gibt wahrscheinlich weitaus bessere Überwachungstools .quelle
ps
wurde auf 80 Zeichen gekürzt und ein Grep für den Prozessnamen schlug fehl. Durch das Festlegen von SPALTEN wurde das Problem behoben.Ich hatte ein ähnliches Problem. Das Bash-Skript funktionierte gut über die Befehlszeile, aber die 'Top'-Ausgabe wurde beim Ausführen von Cron auf 80 Zeichen reduziert.
Ich habe hier zuerst die akzeptierte Lösung ausprobiert, indem ich die Umgebungsvariable COLUMNS festgelegt habe. Ich konnte das nicht zum Laufen bringen (SLES 12.1). Ich habe sogar versucht, in eine Datei zu schreiben, zu exportieren und ein benutzerdefiniertes Quellprofil zu erstellen.
Was funktionierte, war die Verwendung der Option -w von top.
Hier ist der Mut meines Skripts, abzüglich der Benachrichtigung und des Tötens von Sicherheitsvorkehrungen.
quelle