2010-04-30 3 views
1

Я пытаюсь отправить вывод из команды find в OpenSSL, чтобы узнать, когда истекает срок действия сертификатов.Linux/OpenSSL: Отправить find output to openssl

Это находит файлы

find . -name \*.pem -type f 

Это создает CERT информацию Я хочу

openssl x509 -in certname.pem -noout -enddate 

Могу ли я объединить эти два?

Благодарим за помощь.

ответ

2
find . -name \*.pem -type f -execdir openssl x509 -in {} -noout -enddate \; 
+0

Красивые. Я пробовал -exec безрезультатно. Большое спасибо. – Starsky

+0

-exec тоже будет работать. Единственное различие заключается в том, что execdir предотвращает определенные условия гонки файловой системы (http://www.gnu.org/software/findutils/manual/html_node/find_html/Race-Conditions-with-_002dexec.html). Это, наверное, не имеет значения, но это хорошая привычка. –

0

Так как общий комментарий о находке: ваша команда будет работать много быстрее, если вы берете выход найти и трубы его к xargs и пусть это выполнить команду. Проблема заключается в том, что find создает новую команду для каждого соответствующего файла, и это очень медленно, но если вы можете передать несколько параметров той же команде (например, xargs), вы сохраняете все эти вилки и переключатели контекста. Он отлично работает с командами типа grep.

+0

Это был мой первый инстинкт, но мне не удалось получить имена сертификатов для печати в дополнение к выходу enddate. Я хотел, чтобы они сделали из них маленький стол. – Starsky