IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Passages de commandes sous pgsql (en étant connecté superutilisateur)


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 29
    Par défaut Passages de commandes sous pgsql (en étant connecté superutilisateur)
    Bonjour à tous !

    Un titre long mais mon soucis est très très simple.
    J'essaie de faire un script pour lancer des commandes (vider des tables de la Bdd Pgsql, ...) de manière automatique via cron.

    J'ai donc débuté un script en bash.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #!/bin/bash
    su postgres
    psql  opennms -c "delete from events;"
    Le seul soucis c'est que une fois connecté en "su", la commande psql spécifiée dans le code n'est pas lancée (sûrement parce que je ne suis plus en utilisateur root). Comment pourrais - je faire pour qu'elle soit bien exécutée ?

    Merci bien !

  2. #2
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Bonjour,

    As-tu essayé sans la ligne "su postgres"? (donc en gardant le user root)
    Es-tu sûr que la commande psql est trouvée? (c'est mieux de mettre /usr/...)

  3. #3
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 29
    Par défaut
    Salut,

    Bah en fait "root" ne peut pas avoir accès à Postgresql directement (il n'a pas de droits). Il doit passer par un utilisateur ayant des droits d'accès, ou bien passer en admin (su postgres). Enfin par défaut, c'est défini comme ça dans Pgsql. C'est peut être modifiable.

    Ce qui se passe dans le tout petit script, c'est que la commande "psql" est lancée mais que sous "root". En gros il se connecte "postgres" et il attend. Faut que je me déconnecte à la main et après "root" lance "psql". Sauf que c'est pas l'intérêt, comme il n'a pas de droits.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    deb1:~/scripts# ./suppression_evenements.bash
    postgres@deb1:~$ exit
    logout
    psql: FATAL:  role "root" does not exist
    deb1:~/scripts#
    Je ne sais pas s'il y a une astuce "simple" pour que "psql" soit bien lancée sous "postgres".

    Sinon je vais créer un utilisateur, lui donner accès à Pgsql et lui attribuer un crontab.

    Merci bien

  4. #4
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Je n'arrive pas à tout comprendre de ta réponse, mais voici ce que j'en dis:

    1) La base de données refuse l'utilisateur root, c'est très bien comme ça, rien à changer.

    2) Tu dis: la commande "psql" est lancée mais que sous "root". Gné? Si tu changes d'utilisateur (root --> postgres), c'est plus root qui lance la commande suivante, non? À moins que postgres soit juste un user de la base de données et pas un vrai user déclaré sur la machine. Cependant j'imagine que l'installation de PostgreSQL a créé cet utilisateur-admin. À vérifier dans /etc/passwd.

    3) Si tu peux te connecter sur la machine en tant que postgres, pourquoi ne pas faire un crontab directement sur cet utilisateur?

  5. #5
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 29
    Par défaut
    Citation Envoyé par jmelyn Voir le message
    Je n'arrive pas à tout comprendre de ta réponse,
    2) Tu dis: la commande "psql" est lancée mais que sous "root". Gné? Si tu changes d'utilisateur (root --> postgres), c'est plus root qui lance la commande suivante, non? À moins que postgres soit juste un user de la base de données et pas un vrai user déclaré sur la machine. Cependant j'imagine que l'installation de PostgreSQL a créé cet utilisateur-admin. À vérifier dans /etc/passwd.

    3) Si tu peux te connecter sur la machine en tant que postgres, pourquoi ne pas faire un crontab directement sur cet utilisateur?

    Ah bah effectivement, le point 3) marche très bien !!

    Pour le 1), il me semble que c'est bien un utilisateur créé par Postgresql.

    Pour le 2), bah c'était bien "root" qui exécutait "psql" vu que je devais me déconnecter. Si ce n'était pas root, il n'y aurait pas eu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    psql: FATAL:  role "root" does not exist
    Pour le 3), c'est une très bonne solution . Merci du coup de main !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Automatiser des commandes sous Telnet
    Par philmo dans le forum Développement
    Réponses: 6
    Dernier message: 02/06/2005, 18h14
  2. Passage de commande MSDOS
    Par costaud05 dans le forum Langage
    Réponses: 13
    Dernier message: 10/11/2004, 15h14
  3. Demarrer MSDE en ligne de commande sous Win98
    Par Drahu dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/09/2004, 16h18
  4. problème de passage de paramêtre sous mozilla
    Par mat10000 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 27/09/2004, 11h48
  5. commande sous DOS
    Par zorian dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 27/04/2004, 12h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo