bonjour tout le monde, je suis nouveau sur Linux et dans le cadre d'un stage je dois faire un petit script shell pour vérifier la présence des répertoires et les trier
je dois vérifier si les répertoires sont bien present sinon envoyer un incident.
Extraire les targets des fichiers.
Faire le tri de cette liste pour qu’il n’y est pas de doublons ou autre chose que des répertoires.
Vérifier que chaque ligne est un répertoire et qu’il est présent ;
Si le répertoire n’est pas présent créer une alerte >>> écriture dans le application.log d’une erreur.
Création d’un code Olga pour pouvoir envoyer vers un dossier
je suis arrivé a cette commande pour affiner un peu la liste, mais je dois quand meme faire le script et je suis perdu. merci d'avance du coup de main les gars.
grep target *|awk -F: '{print $2}'|sort -u|wc -l
# quelques pistes
Posté par totof2000 . Évalué à 4. Dernière modification le 02 janvier 2020 à 16:21.
man find, avec l'option permettant de sélectionner des répertoires.
Je ne comprend pas ce que tu veux dire exactement ni le rapport avec le point précédent.
Bien vu pour le sort
Tu pourras le faire en bouclant sur chaque élément de ta liste. En shell tu peux tester si un fichier est un répertoire et s'il est bien présent à l'aide de la commande test ( ou via [ ).
man echo, avec redirection vers un fichier. Attention à ne pas te tromper dans la redirection vers fichier ( faire la différence entre > et >> )
Ca je ne comprends pas. Peux-tu détailler ?
Sinon pour commencer, tu peux trouver de bons tutoriels sur la programmation shell. Par exemple
https://openclassrooms.com/fr/courses/43538-reprenez-le-controle-a-laide-de-linux/42867-introduction-aux-scripts-shell
https://abs.traduc.org/abs-fr/
https://guidespratiques.traduc.org/guides/vf/Bash-Beginners-Guide/Bash-Beginners-Guide.pdf
[^] # Re: quelques pistes
Posté par sidi . Évalué à 1.
Merci pour les infos.
J’ai pu avancé un peu, je bloque sur la boucle for, je ne sais pas comment l’utiliser pour tester les répertoires.
Merci pour les infos
[^] # Re: quelques pistes
Posté par totof2000 . Évalué à 2.
Peux-tu poster ce que tu as déjà fait ? Attention, pour poster du code, voir https://linuxfr.org/wiki/aide-edition#toc-code
[^] # Re: quelques pistes
Posté par sidi . Évalué à 1.
for directory in */ ; do
echo $d
done
est ce que cette boucle marcherai pour ne lister que les dossiers de la liste ?
merci
[^] # Re: quelques pistes
Posté par totof2000 . Évalué à 4. Dernière modification le 03 janvier 2020 à 11:42.
Hello.
Ce qui est bien en shell c'est que tu peux tester …
Tu n'obtiens pas ce que tu veux ….
Tandis qu'avec ça, c'est déjà mieux :
Quand tu écris for <variable> in <expression>, tu demande au shell d'évaluer l'expression (qui est censé te retourner une liste de mots séparée par défaut par un ou plusieurs espaces ou une tabulation), puis de splitter cet liste chaine en utilisant le fameux séparateur, et de boucler sur chaque élément. La variable est une variable de boucle qui contiendra chaque élément de ta chaine tour a tour.
Exemple :
Extrait de la page de man :
# Wikibooks
Posté par ted (site web personnel) . Évalué à 3.
Ce site m'avait déjà bien dépanné:
https://fr.wikibooks.org/wiki/Programmation_Bash
Un LUG en Lorraine : https://enunclic-cappel.fr
# en vrac
Posté par M.Poil (site web personnel) . Évalué à 2. Dernière modification le 03 janvier 2020 à 20:03.
En vrac formation accelérée
Is it a Bird? Is it a Plane?? No, it's Super Poil !!!
[^] # Re: en vrac
Posté par deuzene (site web personnel) . Évalué à 1.
« Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »
[^] # Re: en vrac
Posté par totof2000 . Évalué à 2.
Je préfère quand même le find qui retourne que les dossiers si on lui demande avec la bonne option. Pas besoin de tester le type d'élément retourné.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.