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

Linux Discussion :

update mysql via Crontab


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de yuukuari
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Par défaut update mysql via Crontab
    Bonjour

    J'ai besoin de mettre à jour les stats de mon site tous les matins et actuellement je le fais à la main via une page php.
    J'aimerais mettre à jour ces stats automatiquement vers 5h-6h donc je me suis tourné vers les crontab.

    J'ai bien compris comment créer une nouvelle crontab et tout mais je vois pas quel script utiliser pour mettre à jour ma base de données. Pour un exécutable c'est simple il suffit de mettre le chemin mais pour mysql il faut mettre la base, le user, le mdp, etc...

    Je pensais appeler la page php directement mais il faut être logué sur le site en tant qu'admin :/ donc j'ai regardé comment écrire un script sql mais je trouve pas grand chose !

    Par ailleurs, il y a plusieurs jails sur mon serveur (en freebsd), faut-il que je crée la crontab sur la jail de mysql ou bien ce n'est pas obligatoire?

    Merci de votre aide

    Yuuk

  2. #2
    Membre confirmé Avatar de yuukuari
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Par défaut
    Bon j'ai réussi à me connecter à la base et faire un update comme ceci :
    avec statistics.sh :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /usr/local/bin/mysql -h ip_jail_mysql -u user -p nom_base 
    -e "update users set login = 'charlie' where login = 'charlot'"
    J'essaye de voir si on peut écrire plusieurs instructions à la place de la simple requête sql (tables temporaires, etc...).

    Pour la crontab je pense pas que ça posera de problème avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    0 5 * * * sh /usr/local/www/apache22/data/scripts/statistics.sh 
    >> /var/log/cron.log 2>&1

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par yuukuari Voir le message
    J'essaye de voir si on peut écrire plusieurs instructions à la place de la simple requête sql (tables temporaires, etc...).
    Bien sûr !!!
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    (
        echo "create table ..."
        echo "alter table ... create index ..."
        echo "insert into table .... values ..."
        echo "..."
    ) |mysql -U user -p nom_base

    Citation Envoyé par yuukuari Voir le message
    Pour la crontab je pense pas que ça posera de problème avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    0 5 * * * sh /usr/local/www/apache22/data/scripts/statistics.sh 
    >> /var/log/cron.log 2>&1
    Pas besoin de mettre "sh". Le cron peut lancer n'importe quel truc que tu lancerais toi-même. Toutefois, je vois mal l'utilité de la redirection. Déjà si le cron est à ton nom il aura tes droits et tu pourras pas écrire dans "/var/log" et en plus, quand un programme est lancé par cron, le cron se charge de récupérer tout ce que le programme affiche et l'envoie ensuite par mail à l'utilisateur....
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre confirmé Avatar de yuukuari
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Par défaut
    EDIT : J'avais pas encore vu ta réponse! J'ai fini par trouver en faisant comme ça :

    Crontab
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    0 5 * * * /path/to/bin/mysql -h ip_jail_mysql -u user 
    -ppassword nom_base < /path/to/my/scripts/statistics.sql 
    >> /path/to/my/logs/cron.log 2>&1
    Il faut coller -p et le password pour qu'il s'en souvienne.
    Du coup dans statistics.sql on a juste à mettre notre reqûete et c'est bon

    (Suffisait de lire la doc en fait ..)

  5. #5
    Membre confirmé Avatar de yuukuari
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Par défaut
    Citation:
    Envoyé par yuukuari Voir le message
    Pour la crontab je pense pas que ça posera de problème avec ceci :
    Code :

    0 5 * * * sh /usr/local/www/apache22/data/scripts/statistics.sh
    >> /var/log/cron.log 2>&1
    Pas besoin de mettre "sh". Le cron peut lancer n'importe quel truc que tu lancerais toi-même. Toutefois, je vois mal l'utilité de la redirection. Déjà si le cron est à ton nom il aura tes droits et tu pourras pas écrire dans "/var/log" et en plus, quand un programme est lancé par cron, le cron se charge de récupérer tout ce que le programme affiche et l'envoie ensuite par mail à l'utilisateur....
    Tu veux dire que si je met pas de :
    >> /var/log/cron.log 2>&1
    Il va automatiquement m'envoyer un mail avec le résultat?

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par yuukuari Voir le message
    Tu veux dire que si je met pas de :
    >> /var/log/cron.log 2>&1
    Il va automatiquement m'envoyer un mail avec le résultat?
    Oui. D'ailleurs t'as qu'à essayer. Tu lances une commande bidon (style ls -l) toutes les minutes => tu verras la tronche de ta boite mail...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

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

Discussions similaires

  1. update mysql via Crontab
    Par yuukuari dans le forum Requêtes
    Réponses: 2
    Dernier message: 24/05/2010, 16h54
  2. se connecter à une base mysql via access
    Par Thom N2h dans le forum Access
    Réponses: 3
    Dernier message: 28/11/2005, 23h54
  3. gérer une base de donnée MySql via C++
    Par thiane dans le forum Bibliothèques
    Réponses: 9
    Dernier message: 19/05/2005, 16h19
  4. Comment sauvegarder MySQL via SSH ?
    Par Blade dans le forum Administration
    Réponses: 7
    Dernier message: 30/09/2004, 14h03
  5. [JBuilder]connexion postgres ou mysql via DataExpress
    Par rebolon dans le forum JBuilder
    Réponses: 12
    Dernier message: 07/08/2003, 16h45

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