Как перенаправить вывод vmstat в файл в ОС Android? - PullRequest
1 голос
/ 26 июня 2011

Я подключаюсь к своему рутированному телефону через команду adb shell и запускаю команда vmstat для просмотра различных системных ресурсов. Является есть способ перенаправить вывод vmstat в файл. Я попробовал:

vmstat > /sdcard/vmstat_output.txt

но это не работает .. Создает файл, но внутри нет данных ..

Есть идеи?

Ответы [ 3 ]

3 голосов
/ 26 июня 2011

Я думаю, что вывод из vmstat буферизируется при перенаправлении в файл.Таким образом, vmstat должен будет записать данные блоков до того, как они будут сброшены в файл, и если вы прервете его до того, как он запишется достаточно, файл будет пуст.Если вы будете ждать достаточно долго, у вас должен быть какой-то вывод (сработал для меня).

Вы могли бы заставить vmstat завершить себя (сбросить данные) после написания нескольких строк с флагом "-n", но эта возможность кажетсябыть сломанным.

/ proc / vmstat, / proc / stat и / proc / meminfo, как я полагаю, содержат ту же информацию, но не отформатированы так же, как с vmstat.

1 голос
/ 19 февраля 2015

Обычно я перенаправляю его прямо на локальный компьютер через

adb shell vmstat -r 0 -d 1 > ~/tmp/vmstat.log

с помощью переключателя -s adb вы можете выбрать устройство и, таким образом, одновременно зарегистрировать несколько подключенных устройств для разделения журналов.

1 голос
/ 27 июня 2011

Хорошо, я исправил проблему.Я загружаю исходный код из здесь и добавил одну дополнительную строку:

fflush(stdout);

сразу после команды print_line (строка: 134).Затем я перекрестно скомпилировал vmstat.c с помощью agcc :

agcc vmstat.c -o vmstat

и поместил файл в / sdcard / через adb:

adb push vmstat /sdcard/

Теперь перенаправление работает отлично, так как после каждого вызова print_line данные сбрасываются в файл.Как отметил Марк Полхамус, проблема заключалась в том, что vmstat - это команда с блочной буферизацией, что означает, что сначала необходимо заполнить буфер данными, а затем эти данные будут сброшены в файл.

СпасибоВы очень сильно отметились!:)

...