Script bash : Test avant création repertoire
Fermé
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
-
4 août 2010 à 11:40
pcsystemd Messages postés 702 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 - 4 août 2010 à 16:16
pcsystemd Messages postés 702 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 - 4 août 2010 à 16:16
A voir également:
- Script bash : Test avant création repertoire
- Script vidéo youtube - Guide
- Microsoft activation script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Bingo bash free - Télécharger - Divers Jeux
- Script cmd - Guide
6 réponses
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
23
4 août 2010 à 12:40
4 août 2010 à 12:40
Juste encore une petite chose j'ai ajoute les lignes suivantes mais cela a l'air de coincer a
Merci
cd "${i}"
for i in $(cat plop) do if [ -d "${i}" ] then echo "Le répertoire ${i} existe déjà..." echo else echo "Création du répertoire ${i}..." echo "mkdir ${i}" mkdir "${i}" cd "${i}" touch acces.log;touch error.log chown toto.toto access.log error.log;chmod 640 access.log error.log echo fi done
Merci
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 898
4 août 2010 à 11:57
4 août 2010 à 11:57
Salut,
;-))
[jp@MDK-2010 tmpfs]$ ls -1 foo.sh* plop tete/ toto/ [jp@MDK-2010 tmpfs]$ cat plop toto tata tutu titi tete tyty [jp@MDK-2010 tmpfs]$ cat foo.sh #! /bin/bash for i in $(cat plop) do if [ -d "${i}" ] then echo "Le répertoire ${i} existe déjà..." echo else echo "Création du répertoire ${i}..." echo "mkdir ${i}" mkdir "${i}" echo fi done [jp@MDK-2010 tmpfs]$ ./foo.sh Le répertoire toto existe déjà... Création du répertoire tata... mkdir tata Création du répertoire tutu... mkdir tutu Création du répertoire titi... mkdir titi Le répertoire tete existe déjà... Création du répertoire tyty... mkdir tyty [jp@MDK-2010 tmpfs]$ ls -1 foo.sh* plop tata/ tete/ titi/ toto/ tutu/ tyty/ [jp@MDK-2010 tmpfs]$
;-))
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
23
4 août 2010 à 12:16
4 août 2010 à 12:16
Merci jipicy. Décidément toujours dispo pour venir en aide. Cool ;-)
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
23
Modifié par pcsystemd le 4/08/2010 à 14:56
Modifié par pcsystemd le 4/08/2010 à 14:56
Merci jipicy cela fonctionne. Sans vouloir abuser j'aurais besoin de tes conseils car je penses que je structure mal mon script, je m'explique.
Le but de mon script est de faire des liens puis de créer des répertoires s'il n'existent puis dans chacun de ces repertoires un fichier access.log et error.log et ceci dans des PATH differents.
Par exemple je creais dans /home mes liens
puis je dois créer mes repertoires et mes ficheirs access.log et error.log et je dois repeter cette operation dans
plusieurs paths differents selon la langue du site donc dans FR,EN etc.. :
je dois donc avoir :
/FR/logo-12-546/access.log et error.log
/EN/logo-12-546/access.log et error.log
/FR/news_5698756/ccess.log et error.log
/EN/news_569875/access.log et error.log
etc..
Mes données a traiter sont dans un fichier qui contient :
logo-12-524
news-5698756
logo-12-2156
news-125468654
attention les repertoires se nomant news doivent être créer avec un _ et non avec un - donc
news-125468654 doit devenir news_125468654 .
voila ce que j'ai fait pour le moment :
Qu'en penses tu?
Merci
L'accès au savoir est la première liberté que chaque homme devrait avoir.
Le but de mon script est de faire des liens puis de créer des répertoires s'il n'existent puis dans chacun de ces repertoires un fichier access.log et error.log et ceci dans des PATH differents.
Par exemple je creais dans /home mes liens
puis je dois créer mes repertoires et mes ficheirs access.log et error.log et je dois repeter cette operation dans
plusieurs paths differents selon la langue du site donc dans FR,EN etc.. :
je dois donc avoir :
/FR/logo-12-546/access.log et error.log
/EN/logo-12-546/access.log et error.log
/FR/news_5698756/ccess.log et error.log
/EN/news_569875/access.log et error.log
etc..
Mes données a traiter sont dans un fichier qui contient :
logo-12-524
news-5698756
logo-12-2156
news-125468654
attention les repertoires se nomant news doivent être créer avec un _ et non avec un - donc
news-125468654 doit devenir news_125468654 .
voila ce que j'ai fait pour le moment :
#! /bin/bash if [ -e ${CREATEAG} ] then cat ${CREATEAG} | xargs -i sh -c "ln -s /tmp/{} /home/Desktop/{};test -L /home/Desktop/{} || echo erreur de creation d\'un ou plusieurs liens" else echo "Pas de fichiers pour la creation des liens" exit 1 fi cd /tmp for i in $(cat ${CREATEAG}) do if [ -d "${i}" ] then echo "Le répertoire ${i} existe déjà..." echo else echo "Création du répertoire ${i}..." echo "mkdir ${i}" mkdir "${i}" touch "${i}"/{acces,error}.log chown toto.toto "${i}"/{acces,error}.log && chmod 640 "${i}"/{acces,error}.log echo fi done
Qu'en penses tu?
Merci
L'accès au savoir est la première liberté que chaque homme devrait avoir.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 898
4 août 2010 à 14:51
4 août 2010 à 14:51
A 1ère vue ça semble bon. Tu as des erreurs avec ou des soucis ?
Par contre il manque des éléments pour pouvoir t'aider à optimiser le tout (si c'est ce que tu attends...).
Les variables "${CREATEAG}" et "${GREATEAG}" ne sont pas déclarées ;-\ (je suppose que tout le script n'est pas là ?)
Elles contiennent quoi au juste ? Que le nom du fichier, ou le nom + le chemin ?
Quelle différence de contenu entre ces 2 variables ?
Si ce n'est que pour différencier les logo des news et transformer les "-" en "_" que sur les news, il doit y avoir moyen de faire plus simple...
Le script est lancé d'où ?
Par contre il manque des éléments pour pouvoir t'aider à optimiser le tout (si c'est ce que tu attends...).
Les variables "${CREATEAG}" et "${GREATEAG}" ne sont pas déclarées ;-\ (je suppose que tout le script n'est pas là ?)
Elles contiennent quoi au juste ? Que le nom du fichier, ou le nom + le chemin ?
Quelle différence de contenu entre ces 2 variables ?
Si ce n'est que pour différencier les logo des news et transformer les "-" en "_" que sur les news, il doit y avoir moyen de faire plus simple...
Le script est lancé d'où ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
23
4 août 2010 à 15:37
4 août 2010 à 15:37
En faites la variable ${CREATEAG} est declarée et elle contient mon fichier :
DIR="/'whoami'"
DATE="'date '+%d%m%Y''"
CREATELIST="${DIR}/list_${DATE}.lst"
Concernant la variable ${GREATEAG} c'est une erreur de frappe c'est bien ${CREATEAG}
le script est lancé via un utilisateur spécial avec un ENV ou toutes les variables sont déclarés via un autre script.
DIR="/'whoami'"
DATE="'date '+%d%m%Y''"
CREATELIST="${DIR}/list_${DATE}.lst"
Concernant la variable ${GREATEAG} c'est une erreur de frappe c'est bien ${CREATEAG}
le script est lancé via un utilisateur spécial avec un ENV ou toutes les variables sont déclarés via un autre script.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 898
4 août 2010 à 15:53
4 août 2010 à 15:53
Euh... je me perds là ;-((
Dis-moi plutôt où ça coince, par ce que sans avoir toutes les données en main c'est très difficile d'optimiser les choses ;-(
Lors de la création des liens (depuis le même fichier que celui qui permet la création des répertoires, exact ?) faut-il aussi tenir compte de la transformation des "news-xxx" en "news_xxx" ? Je suppose que oui ;-\
Pour la transformation lors de la création des répertoires, remplacer :
par
Dis-moi plutôt où ça coince, par ce que sans avoir toutes les données en main c'est très difficile d'optimiser les choses ;-(
Lors de la création des liens (depuis le même fichier que celui qui permet la création des répertoires, exact ?) faut-il aussi tenir compte de la transformation des "news-xxx" en "news_xxx" ? Je suppose que oui ;-\
Pour la transformation lors de la création des répertoires, remplacer :
for i in $(cat ${CREATEAG})
par
for i in $(sed 's/s-/s_/' ${CREATEAG})
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
23
4 août 2010 à 16:16
4 août 2010 à 16:16
Merci mais laisse je ne veux pas abuser de ton temps car pour le moment cela ne coince nulle part c'est juste pour optimiser mon script. donc je vais le terminé puis on verra pour l'optimser plutard. Merci encore
4 août 2010 à 13:21
Sinon, vire le ' cd "${i}" ' et rajoute :