Script sh + Base de données

Bonjour,

sous debian sarge, j’aimerais faire un script me permettant de recuperer juste une valeur de la base de donnée.

se connecte a la bdd mysql en locahost, a la base pecoro, et recuperer la valeur de “user” dans la table sstatus…
et il renvoit cette valeur par un simple echo (pour qu’un programme recupere celle-ci (mrtg)

or, en script linux, je sais pas comment faire, si les commandes sont les mêmes ?

ou alors, faire un script permettant de recuperer la valeur renvoyé par une page php (en php je sais faire), mais j’ai besoin que ce soit transmis grace au script au programme

merci beaucoup d’avance

Sont les mêmes par rapport à quoi?

Et de quel langage de script tu parles ? sh ? python?

si les commandes sql php sont les meme que en sh justement

un script sh :slight_smile:

ben il me semble que tu peux faire des scripts php, après suffit de le mettre dans un cron et puis c’est bon :wink:

ça fait longtemps que je n’ai plus fait cela, mais il me semble que ce que tu cherches est dans le package mysql-client, il y a plusieurs utilistaires en ligne de commandes permettant de se connecter à une bd et d’y faire toutes les opérations de base. (et même toutes les opérations tout court ;))
je m’en suis servi une fois pour réintialiser le mot de passe admin de mon sql, mais je ne me souviens absolument plus de comment j’ai fait… le man devrait t’aider.

l’astuce est d’envoyer un EOF a la commande mysql et de balancer tes comandes sql comme si tu etais dans le client mysql

exemple (attention, je fais ca de tete ! c’est pour donner une idee, il faut que tu cherches sur le net pour t’assurer de la syntaxe)


#!/usr/bin/bash

(mysql -u user_de_la_base -h localhost pecoro << EOF
select user from status;
EOF) | tee ./resultat.txt

et t’as la valeur de user dans le fichier resultat.txt (specifie -p password_du_user a mysql si c’est le cas)

Si tu n’as qu’une seule commande a envoyer, utiliser l’option -e de mysql devrait faire l’affaire…

Ou alors, tu peux utiliser Perl (ou python) et son module d’acces a mysql (DB::Mysql ???)

Ou alors, puisque tu connais PHP, execute un script standard en CLI (avec php -e - bien sur, il ne servira a rien de renvoyer du html…)

mysql -u user -ppassword -h localhost -e ‘SELECT user FROM sstatus’ pecoro | grep [0-9]

voila

merci beaucoup a tous

Tu peux faire des scripts en php sans problème :wink:

Rajoute au début du script php :
#!/usr/bin/php

et après ça s’exécute comme un script shell :slight_smile: