2010-04-30 11 views
1

J'essaye d'envoyer la sortie de la commande find à OpenSSL afin de savoir quand les certificats expirent.Linux/OpenSSL: Envoyer la sortie finds à openssl

Ceci trouve les fichiers

find . -name \*.pem -type f 

Cela génère l'info cert Je veux

openssl x509 -in certname.pem -noout -enddate 

Puis-je fusionner ces deux?

Merci pour votre aide.

Répondre

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

Belle. J'avais essayé -exec en vain. Merci beaucoup. – Starsky

+0

-exec fonctionnera aussi. La seule différence est que execdir empêche certaines conditions de course du système de fichiers (http://www.gnu.org/software/findutils/manual/html_node/find_html/Race-Conditions-with-_002dexec.html). Cela n'a probablement pas d'importance ici, mais c'est une bonne habitude. –

0

Tout comme un commentaire général sur find: votre commande se déroulera beaucoup plus rapidement si vous prenez la sortie de trouver et tuyau à xargs et laisser que exécuter la commande. Le problème étant que find génère une nouvelle commande pour chaque fichier correspondant et que c'est très lent mais si vous pouvez passer plusieurs paramètres à la même commande (comme xargs le fait), vous enregistrez tous ces forks et commutateurs de contexte. Cela fonctionne très bien avec des commandes comme grep.

+0

C'était mon premier instinct, mais je ne pouvais pas obtenir les noms de cert à imprimer en plus de la sortie enddate. Je voulais que les deux en fassent une petite table. – Starsky