Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Unix
Unix Forum d'entraide sur les systèmes Unix et dérivés (*BSD, AIX, etc.). Avant de poster ->F.A.Q BSD F.A.Q. Aix
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/08/2008, 20h33   #1
Nouveau Membre du Club
 
Inscription : août 2003
Messages : 163
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 163
Points : 31
Points : 31
Par défaut requete sql sous unix

Bonjour,

Je suis pas un pro de unix,

J'ai deux trois questions.

J'ai pas trouver sur le forum, ni sur le net, comment executer une requete sous unix automatiquement? (ex:toute les heures)

-----------------------
Je voudrais aussi faire une requette pour renommer des fiches articles.
Ma table s'appel "article".
Mais uniquement les articles don le code "geo" et egale a "suppri".
renomer les articles par "a supprimer" (ex: 'eric' par "a supprimer"

Dans la table
Code article - Nom - Geo
1231----------eric------suppri


Eventuellement je peux vous envoyer le fichier.

Merci de vos reponses.

Commandeur.
__________________
Commandeur
Commandeur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2008, 08h35   #2
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 779
Points : 7 779
il faut faire 2 choses

utiliser la crontab (planificateur)

exemple

Citation:
crontab -e
>0 0 * * 1 /chemin/script
lancera le script les lundi à 00h00

quand au script

il peut se comporter comme ça par exemlpe

Citation:
mysql << EOF
select * from TOTO where ERREURS="vrai"
EOF
il peut aussi executer un fichier sql comme par exemple

Citation:
sqlplus options.... @fichier.sql
après ça dépend surtout de quel SGBD tu utilises

mais que utilises les 2 modes de fonctionnements il fonctionneront tous

commande << EOF
commande interne
commande interne
...
commande interne
EOF

commande optionquilitunfichierexternecontenantdescommandesinternes

dans tous les cas ça marche et pas que sql
c'est des archis standardisées sous unix

un exemple concret avec mysql :
Code :
1
2
3
4
#!/usr/bin/bash
(mysql -u user_de_la_base -h localhost pecoro << EOF
select user from status;
EOF) | tee ./resultat.txt
un exemple avec un fichier externe sous mysql
Code :
1
2
3
#!/bin/sh
mysql -u user -h host << maj_stock.sql 2 > $LOG/WARNING
un exemple avec sqlplus pour oracle :
Code :
1
2
3
4
5
6
7
8
usernm='bidule/machin'
REP_PROG=/chemi/vers/le/sql
PROG=truc.sql
LANCE_PROG="sqlplus -s $usernm @$REP_PROG/$PROG"
...

$LANCE_PROG
...
tu peux faire pareil pour d'autres commandes comme ftp ou autre...

Code :
1
2
3
4
5
6
7
8
9
ftp toto << EOF
cd titi
lcd /tmp
mget *.err
cd tutu
put *.retour
bye
EOF
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2008, 08h48   #3
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 779
Points : 7 779
Citation:
Envoyé par Commandeur Voir le message
Bonjour,

Je voudrais aussi faire une requette pour renommer des fiches articles.
Ma table s'appel "article".
Mais uniquement les articles don le code "geo" et egale a "suppri".
renomer les articles par "a supprimer" (ex: 'eric' par "a supprimer"

Dans la table
Code article - Nom - Geo
1231----------eric------suppri


Eventuellement je peux vous envoyer le fichier.

Merci de vos reponses.

Commandeur.

quand à la requette sql
elle ressemblera à ça :
Code :
update article set nom='a supprimer' where geo='suppri" ;
ce qui dans un script peut se faire comme indiqué précédement :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/sh
if [ `ps -ef | grep -i mysqld |wc -l` -lt 3 ] ; then
 echo mysql n'est pas démarré : ECHEC DE LA PROCEDURE | tee /var/log/miseajour.err
 exit 1
fi
#si mysql est ok on peut lancer la requette
(
mysql -u user -h localhost << EOF
use nomdatabase ;
update article set nom='a supprimer' where geo='suppri" ;
quit
EOF
) 1>> /var/log/miseajour.log 2>>/var/log/miseajour.err
exit $?
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h06.


 
 
 
 
Partenaires

Hébergement Web