Как сохранить вывод SQL-запроса, запущенного из Osquery, в файл
Я установил утилиту Osquery на мою машину. Когда я запускаю команду SQL, она выводит STDOUT. Есть ли способ перенаправить этот вывод в файл?
$ sudo osqueryi
I0314 10:57:51.644351 3958 database.cpp:563] Checking database version for migration
I0314 10:57:51.644912 3958 database.cpp:587] Performing migration: 0 -> 1
I0314 10:57:51.645279 3958 database.cpp:619] Migration 0 -> 1 successfully completed!
I0314 10:57:51.645627 3958 database.cpp:587] Performing migration: 1 -> 2
I0314 10:57:51.646088 3958 database.cpp:619] Migration 1 -> 2 successfully completed!
Using a virtual database. Need help, type '.help'
osquery>
osquery>
osquery> SELECT * from memory_info;
+--------------+-------------+----------+----------+-------------+-----------+----------+------------+-----------+
| memory_total | memory_free | buffers | cached | swap_cached | active | inactive | swap_total | swap_free |
+--------------+-------------+----------+----------+-------------+-----------+----------+------------+-----------+
| 513617920 | 270921728 | 15110144 | 99860480 | 0 | 145080320 | 59494400 | 0 | 0 |
+--------------+-------------+----------+----------+-------------+-----------+----------+------------+-----------+
osquery>
Я хочу этот вывод в файл. Я проверил официальную документацию Osquery. Но это не помогло решить эту конкретную проблему. https://osquery.readthedocs.io/en/stable/introduction/sql/
2 ответа
Вы можете использовать средства перенаправления вашей оболочки:
$ osqueryi --json 'select * from osquery_info' > res.json
$ cat res.json
[
{"build_distro":"10.12","build_platform":"darwin","config_hash":"e7c68185a7252c23585d53d04ecefb77b3ebf99c","config_valid":"1","extensions":"inactive","instance_id":"38201952-9a75-41dc-b2f8-188c2119cda1","pid":"26255","start_time":"1552676034","uuid":"4740D59F-699E-5B29-960B-979AAF9BBEEB","version":"3.3.0","watcher":"-1"}
]
Обратите внимание, что в этом примере мы используем вывод JSON. Есть и другие доступные варианты: --csv
, --line
, --list
,
Как объяснил seph в /questions/48616228/kak-sohranit-vyivod-sql-zaprosa-zapuschennogo-iz-osquery-v-fajl/48616249#48616249, это общий случай использования для планирования запросов в osqueryd
и поместите результаты в конвейер регистрации.
osqueryi, как правило, для интерактивного использования. При сохранении в файлы или при наличии обычной части конвейера данных люди обычно настраивают запланированные запросы с помощью osqueryd.
https://osquery.readthedocs.io/en/stable/deployment/configuration/ содержит несколько довольно простых примеров конфигурации.
Вы также можете указать запрос в командной строке, а затем делать все, что вы делаете в оболочке.