Как получить правильное устройство для ограничения блочного ввода-вывода для док-контейнера?

Один из способов приблизиться к этому — настроить файлы временных меток, чтобы ограничить даты, которые вы ищете:

touch -t 201902210000 /tmp/start-time
touch -t 201902212359.59 /tmp/end-time

... а затем запросить findфайлы, которые новее начального -времени, но не новее конечного -времени:

find. -type f  -newer /tmp/start-time  ! -newer /tmp/end-time

Собираем все воедино:

touch -t 201902210000 /tmp/start-time
touch -t 201902212359.59 /tmp/end-time
find. -type f -newer /tmp/start-time  ! -newer /tmp/end-time -name '*.xml' -exec grep JMS111 /dev/null {} +
rm /tmp/start-time /tmp/end-time

Это будет искать файлы в правильном временном интервале с именами, заканчивающимися на .xml, а затем передать эти имена файлов в grep, помещая столько, сколько может за проход. Я добавил /dev/nullв качестве «файла» для поиска grep вместе с именами файлов из find, если они есть. Таким образом, если есть только один совпадающий файл, grep«принуждается» сообщать о совпадающем имени файла (, поскольку /dev/null никогда не совпадет, об этом не будет сообщено ).

На выходе будут имена файлов и соответствующие строки из этих файлов.

0
08.04.2021, 16:22
1 ответ

Docker не указывает способ незаметно получить блочное устройство, которое используется для операций чтения/записи.

Успешное обходное решение:

  • получить все блочные устройства ОС (команда, зависящая от ОС ).
  • поставил ограничение на все устройства. Никаких побочных эффектов не наблюдается.
0
28.04.2021, 22:53

Теги

Похожие вопросы