Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1830 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Script shell (sql)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script shell (sql)

n°1526781
sneakz
Posté le 10-03-2007 à 13:30:51  profilanswer
 

Bonjour,
 
J'ai des difficultés à réaliser un script shell sur 2 points :
 
1)  j'utilise dans le script la commande ftpasswd pour créer sous proftpd des utilisateurs virtuels.
 
Cette commande insérée dans une boucle attend un mot de passe. Comment puis-je automatiser une réponse automatique ?
 

Code :
  1. for ((i=1; i<=10; i++))
  2. do
  3. /usr/sbin/ftpasswd --passwd --name=${domaine}$i --uid=1009 --gid=33 --home=/var/www/htdocs/${domaine}$i --shell=/bin/false
  4. done


 
2) dans ce script, je veux automatiser la création de base de données sous mysql, or j'ai une ligne qui n'est pas bien reconnu en shell alors qu'elle passe en mode sql.
 
CREATE DATABASE et GRANT USAGE fonctionnent mais pas GRANT ALL PRIVILEGES
 

Code :
  1. cat <<EOF | mysql --user=root --password='password'
  2. CREATE DATABASE $DOMAINE;
  3. GRANT USAGE ON * . * TO '${DOMAINE}$i'@'%' IDENTIFIED BY '$password';
  4. GRANT ALL PRIVILEGES ON `cgo01\_%` . * TO '${DOMAINE}$i'@'%' WITH GRANT OPTION ;
  5. EOF


 
Toute aide est la bienvenue
 
Merci

mood
Publicité
Posté le 10-03-2007 à 13:30:51  profilanswer
 

n°1526907
Sve@r
Posté le 10-03-2007 à 20:29:32  profilanswer
 

sneakz a écrit :


1)  j'utilise dans le script la commande ftpasswd pour créer sous proftpd des utilisateurs virtuels.
 
Cette commande insérée dans une boucle attend un mot de passe. Comment puis-je automatiser une réponse automatique ?


Déjà, avant d'insérer ce genre de commande dans une boucle, faut que tu la testes en direct, tu verras mieux la syntaxe. Tu tapes "ftppasswd --<tous les trucs etc>" et tu regardes la syntaxe. Dès que c'est bon, tu la mets dans ta boucle.
Tu peux utiliser la double redirection input => ftppasswd machin chose << _EOT_
mot_de_passe
_EOT_
 
Le problème, c'est que certaines commandes comme "passwd" refusent la redirection input (risque de hack). Si "ftppasswd" est du même type, tu seras marron... sauf si la commande intègre en elle une option te permettant de paramétrer l'input => man
 

sneakz a écrit :

2) dans ce script, je veux automatiser la création de base de données sous mysql, or j'ai une ligne qui n'est pas bien reconnu en shell alors qu'elle passe en mode sql.
 
CREATE DATABASE et GRANT USAGE fonctionnent mais pas GRANT ALL PRIVILEGES
 

Code :
  1. cat <<EOF | mysql --user=root --password='password'
  2. CREATE DATABASE $DOMAINE;
  3. GRANT USAGE ON * . * TO '${DOMAINE}$i'@'%' IDENTIFIED BY '$password';
  4. GRANT ALL PRIVILEGES ON `cgo01\_%` . * TO '${DOMAINE}$i'@'%' WITH GRANT OPTION ;
  5. EOF



 
Fait gaffe aux backquottes (`) après le "ON". Le shell interprète ça comme un sous-appel à une commande. A mon avis, faut les protéger par des backslashes. D'ailleurs je suis étonné que le "GRANT USAGE" passe car les étoiles devraient aussi te poser des soucis...
 


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1526983
sneakz
Posté le 11-03-2007 à 01:43:31  profilanswer
 

Merci pour ces conseils.
 
Pour la double redirection, je n'ai pas tout compris mais je vais creuser la question.
 
Pour les backslashes, je vais les ajouter pour tester.
Concernant les *, l'utilisateur est bien créé via le script shell avec son mot de passe associé.
 
Merci encore pour cette intervention.

n°1527081
Sve@r
Posté le 11-03-2007 à 17:05:25  profilanswer
 

sneakz a écrit :

Pour la double redirection, je n'ai pas tout compris mais je vais creuser la question.


Ben tu t'en sers déjà quand tu fais "cat << EOF" donc t'es sensé connaître et comprendre cette syntaxe non ???


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1530183
matafan
Posté le 18-03-2007 à 20:11:28  profilanswer
 

cat <<'EOF'
 
Ca évite que le shell interprète ce qui se trouve dans le here-document.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Script shell (sql)

 

Sujets relatifs
Pb [SCRIPT SHELL] Help!!!Plugin script shell pour eclipse?
Script shell : lecture dans un fichier et mise en formeSocket en script shell
[Shell] Petit probleme avec un script[Shell / C] Script shell en tant que démon ?
[script shell] grep -f sur de grandes quanités de donnéesRedirection type shell avec script perl cgi
[SHELL] petit script facil mais gros soucitSCRIPT SHELL
Plus de sujets relatifs à : Script shell (sql)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR