Я новичок в Linux, и я пытаюсь посмотреть команду и попытаться записать ее в файл. Я старался
смотреть -t -n 10 "(дата '+ ВРЕМЯ:% H:% M:% S'; ps aux | grep" pattern "| wc -l)" >> logfile
и ожидаю такой результат, как
TIME: 10:32:30 12
TIME: 10:32:40 18
TIME: 10:32:50 2
храниться в лог-файле. Тем не менее, когда в файле журнала есть непечатаемые символы в. Как я могу получить этот вид вывода из команды li
ps
. Я изменю свой ответ.Это легко сделать с
watch
помощью сценариев.watch -t -n 10 "(date '+TIME:%H:%M:%S' ; ps aux | grep "pattern" | wc -l) | tee -a logfile"
источник
tee -a logfile
в арг, переданный вwatch
. Очень чисто, спасибо.watch
предназначен для вывода на дисплей. Если вы просто хотите запускать команду каждые X секунд, вам просто нужно использовать цикл задержки для этого.источник
watch - это программа ncurses, предназначенная для запуска в окне консоли (не перенаправленная), поэтому она создает набор непечатных символов (это управляющие символы, которые управляют и перемещают курсор для перерисовки экрана).
Вы можете попробовать переместить команды date / grep в скрипт, а затем вызвать этот скрипт из cronjob.
источник
Хорошо, я поместил его в скрипт и получил следующий код:
источник
Я столкнулся с этим вопросом, когда я пытался получить лучший / зарегистрированный вывод
du -sh $data_path
. Я использовал шаблон "while command, do sleep", найденный здесь, но использовал какой-то сложный AWK, чтобы получить желаемый результат.На самом деле я сделал это как вкладыш, поэтому есть точки с запятой. Но чтобы сделать его читабельным, я разбил его. Вывод выглядит так:
источник
Вот пример , который я просто нужен для
watch
наps axf
с отметкой времени в нижней части всей продукции. Я наблюдаю, когда Apache выходит из строя. Я должен был прислушиваться кtee
каждой команде,ps
иdate
.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'
Пример вывода из
tail --follow logfile-apache-issue.log
полученного файла.источник