find – Возвращает список файлов по определённым критериям
Новая в версии 2.0.
Описание
- Возвращает список файлов, соответствующих заданным критериям. Критерии комбинируются с помощью логического И.
- Для целевых систем Windows используйте модуль win_find.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| age строка | Выбирает файлы, возраст которых равен или больше указанного времени. Используйте отрицательное значение возраста для выбора файлов, возраст которых равен или меньше указанного времени. Вы можете выбрать секунды, минуты, часы, дни или недели, указав первую букву соответствующего слова (например, "1w"). | |
| age_stamp строка |
| Выбирает свойство файла, по которому сравнивается возраст. |
| contains строка | Один или несколько шаблонов регулярных выражений, которые должны соответствовать содержимому файла. | |
| depth целое число добавлено в 2.6 | Устанавливает максимальное количество уровней вложенности каталогов. Установка recurse в no переопределит это значение, что эквивалентно depth 1.По умолчанию глубина неограничена. | |
| excludes список добавлено в 2.5 | Один или несколько шаблонов (оболочки или регулярные выражения), тип которых контролируется параметром use_regex. Элементы, имена которых соответствуют шаблону excludes, исключаются из результатов поиска patterns. Можно указать несколько шаблонов, используя список.псевдонимы: exclude | |
| file_type строка |
| Тип файла для выбора. Варианты 'link' и 'any' были добавлены в Ansible 2.3. |
| follow булево |
| Установите значение yes для следования символычных ссылкам в пути для систем с python 2.6+. |
| get_checksum булево |
| Установите значение yes для получения SHA1 контрольной суммы файла. |
| hidden булево |
| Установите значение yes для включения скрытых файлов, в противном случае они будут проигнорированы. |
| paths список / обязательный | Список путей к каталогам для поиска. Все пути должны быть полными. псевдонимы: name, path | |
| patterns список | Значение по умолчанию: "*" | Один или несколько шаблонов (оболочки или регулярные выражения), тип которых контролируется use_regex параметром.Шаблоны ограничивают список возвращаемых файлов теми, имена которых соответствуют хотя бы одному из указанных шаблонов. Можно указать несколько шаблонов, используя список. Этот параметр ожидает список, который может быть отделён запятыми или представлен в формате YAML. Если любой из шаблонов содержит запятую, убедитесь, что вы поместили их в список, чтобы избежать нежелательного разделения шаблонов. псевдонимы: pattern |
| recurse булево |
| Если целевой объект является каталогом, рекурсивно переходит в подкаталоги в поисках файлов. |
| size - | Выбирает файлы, размер которых равен или больше указанного размера. Используйте отрицательное значение размера для выбора файлов, размер которых равен или меньше указанного размера. Значения без единиц измерения считаются в байтах, но можно добавить b, k, m, g и t для указания байтов, килобайтов, мегабайтов, гигабайтов и терабайтов соответственно. Размер каталогов не учитывается. | |
| use_regex булево |
| Если no, шаблоны являются шаблонами оболочки (shell).Если yes, это регулярные выражения Python. |
См. также
См. также
- win_find – Возвращает список файлов по определённым критериям
- Официальная документация по модулю win_find.
Примеры
- name: Recursively find /tmp files older than 2 days
find:
paths: /tmp
age: 2d
recurse: yes
- name: Recursively find /tmp files older than 4 weeks and equal or greater than 1 megabyte
find:
paths: /tmp
age: 4w
size: 1m
recurse: yes
- name: Recursively find /var/tmp files with last access time greater than 3600 seconds
find:
paths: /var/tmp
age: 3600
age_stamp: atime
recurse: yes
- name: Find /var/log files equal or greater than 10 megabytes ending with .old or .log.gz
find:
paths: /var/log
patterns: '*.old,*.log.gz'
size: 10m
# Note that YAML double quotes require escaping backslashes but yaml single quotes do not.
- name: Find /var/log files equal or greater than 10 megabytes ending with .old or .log.gz via regex
find:
paths: /var/log
patterns: "^.*?\\.(?:old|log\\.gz)$"
size: 10m
use_regex: yes
- name: Find /var/log all directories, exclude nginx and mysql
find:
paths: /var/log
recurse: no
file_type: directory
excludes: 'nginx,mysql'
# When using patterns that contain a comma, make sure they are formatted as lists to avoid splitting the pattern
- name: Use a single pattern that contains a comma formatted as a list
find:
paths: /var/log
file_type: file
use_regex: yes
patterns: ['^_[0-9]{2,4}_.*.log$']
- name: Use multiple patterns that contain a comma formatted as a YAML list
find:
paths: /var/log
file_type: file
use_regex: yes
patterns:
- '^_[0-9]{2,4}_.*.log$'
- '^[a-z]{1,5}_.*log$'
Возвращаемые значения
Общие возвращаемые значения описаны здесь. Ниже приведены поля, уникальные для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| examined целое число | успех | Количество проверенных объектов файловой системы. Пример: 34 |
| files список | успех | Все совпадения, найденные по заданным критериям (см. модуль stat для полного вывода каждого словаря). Пример: [{'path': '/var/tmp/test1', 'mode': '0644', '...': '...', 'checksum': '16fac7be61a6e4591a33ef4b729c5c3302307523'}, {'path': '/var/tmp/test2', '...': '...'}] |
| matched целое число | успех | Количество совпадений. Пример: 14 |
Статус
- Данный модуль гарантирует отсутствие обратной несовместимости в будущих изменениях. [stableinterface]
- Этот модуль поддерживается основной командой Ansible. [core]
Поддержка Red Hat
Дополнительную информацию о поддержке этого модуля Red Hat можно найти в статье базы знаний Red Hat Red Hat Knowledge Base article.
Авторы
- Brian Coca (@bcoca)
Подсказка
Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/find_module.html