Script shell (sql) - Shell/Batch - Programmation
Marsh Posté le 10-03-2007 à 20:29:32
sneakz a écrit : |
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.
|
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...
Marsh Posté le 11-03-2007 à 01:43:31
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.
Marsh Posté le 11-03-2007 à 17:05:25
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 ???
Marsh Posté le 18-03-2007 à 20:11:28
cat <<'EOF'
Ca évite que le shell interprète ce qui se trouve dans le here-document.
Marsh Posté le 10-03-2007 à 13:30:51
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 ?
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
Toute aide est la bienvenue
Merci