Ich versuche, Vmstat alle 20 Sekunden über ein Bash-Skript auszuführen und die Ergebnisse für mehrere Stunden in eine Datei auszugeben. Mein Skript sieht wie folgt aus:Vmstat schreibt seine Ausgabe nicht in die Datei
#!/bin/bash
vmstat 20 1000 | ./timestamp.pl >> vmstat.txt
timestamp.pl Skript sieht wie folgt aus:
#!/usr/bin/perl
while(<>){
print localtime() . "$_ ";}
ich timestamp.pl nenne Zeitstempel von vmstat Ausgabe in jeder Zeile einzufügen. Das Skript läuft etwa eine Stunde lang auf SunOS und ich sehe keinen Eintrag in der Datei vmstat.txt. Irgendwelche Ideen, warum ist dies oder eine Möglichkeit, es zu verbessern, so dass es die Ausgabe in die vmstat.txt-Datei schreibt?
kann nicht reproduzieren dieses Problem. Funktioniert gut mit Solaris 11. – Cyrus
sehen Sie, ob Ihr System "unbuffer" hat, wenn ja, fügen Sie das der "vmstat" Zeile voran. Oder sehen Sie, ob Sie ein 'stdbuf' verwenden können, um wie stdbuf -o0 program | zu lesen/zu schreiben stdbuf -i0 Skript'. Viel Glück. – shellter
@Cyrus, das System ist Solaris 10. – user1471980