Jestem nowicjuszem w Linuksie i próbuję obejrzeć polecenie i próbuję zalogować się do pliku. próbowałem
zegarek -t -n 10 "(data '+ CZAS:% H:% M:% S'; ps aux | grep" wzorzec "| wc -l)" >> plik dziennika
i oczekuję wyniku takiego jak
TIME: 10:32:30 12
TIME: 10:32:40 18
TIME: 10:32:50 2
do zapisania w pliku dziennika. Jednak gdy plik dziennika zawiera wewnątrz znaki, które nie mogą być drukowane. Jak uzyskać tego rodzaju dane wyjściowe z polecenia li
ps
. Zmodyfikuję swoją odpowiedź.Można to łatwo zrobić za pomocą
watch
również bez użycia skryptów.watch -t -n 10 "(date '+TIME:%H:%M:%S' ; ps aux | grep "pattern" | wc -l) | tee -a logfile"
źródło
tee -a logfile
wewnątrz Arg przekazanewatch
. Bardzo czyste, dziękuję.watch
jest przeznaczony do wyświetlania na wyświetlaczu. Jeśli po prostu chcesz uruchamiać polecenie co X sekund, powinieneś po prostu użyć do tego pętli opóźniającej.źródło
watch to program ncurses, który został zaprojektowany do uruchamiania w oknie konsoli (bez przekierowywania), dlatego tworzy grupę znaków niedrukowalnych (są to znaki sterujące, które zarządzają i przesuwają kursor w celu przerysowania ekranu).
Możesz spróbować przenieść komendy date / grep do skryptu, a następnie wywołać ten skrypt z cronjob.
źródło
Ok, więc umieszczam go w skrypcie i mam następujący kod:
źródło
Natknąłem się na to pytanie, gdy próbowałem uzyskać lepsze / zarejestrowane dane wyjściowe
du -sh $data_path
. Użyłem wzorca „while while, do sleep” znalezionego tutaj, ale użyłem złożonego AWK, aby uzyskać pożądany wynik.Zrobiłem to jako oneliner i dlatego są średniki. Ale żeby było czytelne, wyrwałem to. Dane wyjściowe wyglądają następująco:
źródło
Oto przykład, którego potrzebowałem dla a
watch
onps axf
ze znacznikiem czasu na dole całego wyjścia. Czekam na awarię Apache. Musiałem potokować dotee
każdego polecenia,ps
idate
.watch 'ps axf | grep --line-buffered "[a]pache2"| tee --append logfile-apache-issue.log; date '+TIME:%H:%M:%S' | tee --append logfile-apache-issue.log'
Przykładowe dane wyjściowe
tail --follow logfile-apache-issue.log
pliku wynikowego.źródło