Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications
Applications Questions sur l'utilisation d'applications, du shell, et des interfaces graphiques (KDE, Gnome, XFCE... )
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 09/12/2009, 10h24   #1
Membre Expert
 
Avatar de Golgotha
 
Homme cédric
Développeur informatique
Inscription : août 2007
Messages : 606
Détails du profil
Informations personnelles :
Nom : Homme cédric
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2007
Messages : 606
Points : 1 217
Points : 1 217
Envoyer un message via Skype™ à Golgotha
Par défaut [crontab] traitement fichier sql puis import

bonjour,

Pour un de mes site web, j'ai un fichier sql que j'aimerais passer tout les jour dans ma base de donnée mysql, avec une tâche cron.
En plus, je voudrais ajouter un champs "date" dans le fichier sql que je récupère avant de faire l'import.

- Le fichier sql se trouve sur internet : http://www.toto/dump.sql
Je voudrait donc :

1 - Le télécharger.
2 - Ajouter au fichier un champs date avec la date du jour :
une ligne du fichier :
INSERT INTO `x_world` VALUES (1203,1,399,1,153084,'D )',594,'sebastp',59,'B.O.',761);

je veux les transformer en :
INSERT INTO `x_world` VALUES (1203,1,399,1,153084,'D )',594,'sebastp',59,'B.O.',761,'09/12');

et ensuite passer le nouveau fichier dans ma base.

Je ne connais pas bien crontab, alors toutes aide sera le bienvenue..

merci d'avance
__________________
N'oublier pas de :
  • Remercier ceux qui vous ont aidé.
  • Mettre le Tag [Résolu].
Golgotha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2009, 11h25   #2
Membre Expert
 
Avatar de Golgotha
 
Homme cédric
Développeur informatique
Inscription : août 2007
Messages : 606
Détails du profil
Informations personnelles :
Nom : Homme cédric
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2007
Messages : 606
Points : 1 217
Points : 1 217
Envoyer un message via Skype™ à Golgotha
Voici ce que j'ai commencer a faire, pour le moment ça n'a pas l'aire de marcher...

Code :
1
2
3
4
5
6
7
cd /home/travian/www/
wget http://s1.travian.fr/map.sql
echo /home/travian/www/map.sql | sed 's/);/,CURDATE());/'
mysqldump --host=mysql.xxxxxxx --user=xxxxx --password=xxxxxx travian_django < /home/travian/www/map.sql
mysql --user=xxxxxx --password=xxxxxxxx
delete from travian_django where mydate = CURDATE() - 5;
exit;
__________________
N'oublier pas de :
  • Remercier ceux qui vous ont aidé.
  • Mettre le Tag [Résolu].
Golgotha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2009, 12h13   #3
Membre Expert
 
Homme
budget et contrôle de gestion
Inscription : décembre 2006
Messages : 865
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 44
Localisation : France

Informations professionnelles :
Activité : budget et contrôle de gestion
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2006
Messages : 865
Points : 1 320
Points : 1 320
Salut,

L'import de ton dump se fait de la façon suivante :
Code :
mysql database < backup-file.sql
Voir cette page pour plus d'explication.

http://fr.wikipedia.org/wiki/Crontab permet d'exécuter des scripts selon une fréquence paramétrée (le script doit être exécutable).

Pour ton problème je verrais cela :
  1. Récupération du dump SQL.
  2. Nettoyage de la base.
  3. Insertion du dump.
  4. Mise à jour de la base avec la date du jour sur les enregistrements n'ayant pas cette donnée (à priori ceux du dump donc).
__________________
Winnt

C'est en Linuxant qu'on devient .... geek

Intel Core i5 750 / 8 Go ram / Hdd 2 To / NVIDIA GeForce GTS 250 1Go sous Gentoo.
Dual core E6300 / 2Go ram / Hdd 1 To / Ati 9800XT sous Debian Testing.
Atom N330 / 4Go ram / Hdd 5To / intel GMA 950 sous Debian Testing
Winnt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2009, 15h15   #4
Membre Expert
 
Avatar de Golgotha
 
Homme cédric
Développeur informatique
Inscription : août 2007
Messages : 606
Détails du profil
Informations personnelles :
Nom : Homme cédric
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2007
Messages : 606
Points : 1 217
Points : 1 217
Envoyer un message via Skype™ à Golgotha
Finalement j'ai réussi a me dépatouiller merci !

j'ai fait ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
cd /home/travian/www/
rm map.sql
wget http://s1.travian.fr/map.sql
sed 's/);/,CURDATE());/g' map.sql > new_map.sql
mv new_map.sql map.sql
mysql --host=mysql.alwaysdata.com --user=xxxxx --password=xxxxxx travian_django < map.sql
mysql --host=mysql.alwaysdata.com --user=xxxxx --password=xxxxxx
use travian_django
delete from x_world where mydate = CURDATE() - 5;
exit;
- suppression du fichier sql si il existe
- téléchargement du fichier sql
- mise à jour de la table
- j'efface les données datant de 5 jours sur la table

La seul chose c'est que mon log du crontab est vide.. mais ça marche bien.
__________________
N'oublier pas de :
  • Remercier ceux qui vous ont aidé.
  • Mettre le Tag [Résolu].
Golgotha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2009, 16h30   #5
Membre Expert
 
Homme
budget et contrôle de gestion
Inscription : décembre 2006
Messages : 865
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 44
Localisation : France

Informations professionnelles :
Activité : budget et contrôle de gestion
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2006
Messages : 865
Points : 1 320
Points : 1 320
Salut,

Pour les log crontab regarde dans syslog.conf pour les activer.
__________________
Winnt

C'est en Linuxant qu'on devient .... geek

Intel Core i5 750 / 8 Go ram / Hdd 2 To / NVIDIA GeForce GTS 250 1Go sous Gentoo.
Dual core E6300 / 2Go ram / Hdd 1 To / Ati 9800XT sous Debian Testing.
Atom N330 / 4Go ram / Hdd 5To / intel GMA 950 sous Debian Testing
Winnt est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 01h25.


 
 
 
 
Partenaires

Hébergement Web