Probleme de Cron

  • Auteur de la discussion Auteur de la discussion YvesB
  • Date de début Date de début
WRInaute occasionnel
Bjr, j'ai essayer dajouter l'execution d'un cron tout les jours pr executer un script php et sauvegarder ma base sql.
Il ne semble pas fonctionner. Voyer vous l'ereur la dedans?



forumsSHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly


02 4 * * * /usr/local/bin/php /home/afterdreamscom/robot.php

*/3 * * * * postfix /home/mailusers/maintain

02 4 * * * /usr/bin/mysqldump --host=213.246.40.46 --user=afterdreamscom
--password=monpasse --add-drop-table afterdreams > /usr/local/bin/php/home/afterdreamscom/dumpdb1.sql



Merci a vous :)
 
WRInaute occasionnel
68 personnes m'ont lu, et aucune n'est apparement capable de me repondre. Je suis déséspéré :(
 
WRInaute impliqué
Salut ;)

Pour ta sauvegarde, j'te conseille de tout faire via script, c'est aisément plus modifiable. Dans le script php, exécute y via exec() tes commandes SHELL (pas le pétrolier).

Sinon pour lancer un script php il est plus pratique de faire
Code:
02 4 * * * php -f /home/afterdreamscom/robot.php
(pour le lancer à 4h02 du matin c'est ça ?).
 
WRInaute occasionnel
C'est bon pr le robot.php j'ai reussi a le faire marcher. MErci a toi.
Pour la sauvegarde par script, je veux bien mais alors je sais vraiment pas quoi mettre ds le script :( M'enfin je vais chercher un peu sur le net de quoi m'inspirer.

C t plus a 4 heure tt les matin, je ss pas pq jai mis 2.

Merci The Jedi
 
WRInaute impliqué
Pour la sauvegarde par script, t'as 2 étapes.

La base de données
Code:
<?php
exec("mysqldump -u loginbdd --password=passbdd --databases nombase > sauvegarde.sql");
?>

Ca créera un dump de ta base (réimportable très facilement avec la commande d'après) dans le fichier sauvegarde.sql (à côté de ton script php).
Plus d'infos : http://dev.mysql.com/doc/mysql/en/mysqldump.html

Et pour réimporter ta base, tu le feras surement directement dans le shell donc
Code:
mysql -u loginbdd --password=passbdd nombase < sauvegarde.sql

Sauvegarde des fichiers
Limite le plus simple.

Code:
<?php
exec("tar cfzP site.tar.gz /home/chemin/de/ton/site/");
?>

Après à toi d'adapter les chemins et tout mais jte déconseille de mettre ton script de sauvegarde dans le répertoire que tu tentes de sauver ^^.
Après, faut stocker ça ailleurs car une save sur le même serveur, si le disque dur crash ... ben tu l'as dans l'os.

Bon courage ;)
 
WRInaute occasionnel
Merci the Jedi, j'ai fait comme tu ma dis, avec ce script :
Code:
if(exec("mysqldump -u afterdreamscom --password=pass --databases afterdreams > sauvegardebase.sql")){echo ("Base sauvegardé");}else{echo ("Base non sauvegardé");}

Mais ca me repond base non sauvegardé, et bien sur pas de fichier... Je suis sur que mon pass et bon, je vois pas :'(
 
WRInaute discret
ta fonction exec() est bien activée ?

mais sinon pourquoi apeller un php qui éxécute une commande serveur... autant apeller soit la commande serveur direct, soit un bash qui integre la commande.

tu fait:
vi nom_bash
tu balances ta ligne mysqldump...
:wq
chmod +x nom_bash

et tu mets direct /ton/path/nom_bash en cron
ca evite d'utiliser php pour rien..
 
WRInaute impliqué
Je fais tout en php car ça m'évite d'avoir à mixer différents fichiers.
Au départ je faisais ça en bash mais comme je ne le manipule pas encore assez bien, j'ai opté pour le php.
J'avais un problème pour exporter les sauvegardes sur un autre serveur (il voulait pas enlever le mode passif quoique je fasse) donc voilou ^^
 
WRInaute occasionnel
un script bash c quand meme plus simple, surtout si php n'a pas les privileges necessaire pour executer mysqldump :)
 
WRInaute occasionnel
Mais si je n'avais pas les autorisations pr faire un mysqldump, ou si la fonction n'etait pas activé, il me mettrait un message d'erreur non? parce que la rien, juste mon message pr me dire que ce n'est pas bon. (biensur je nest tjs pas de @ avt ma fonction )
 
WRInaute occasionnel
Désolé mais je ne sais pas comment l'on fait pour avoir les droits root... fo mettre le passe root et le login root dans la fonction exec?
 
WRInaute occasionnel
exec() hérite des droits de php eux meme hérités d'apache si le php est en module.

tu peut soit changer les droits de apache/php, soit changer les attributs de mysqldump pour que php puisse l'utiliser avec ses droits actuels (moins risqué).

sinon tu peut aussi passer par une commande bash 'sudo'
 
WRInaute occasionnel
J'ai un peu de mal avec ce que tu me dis de faire. :(
De mon coté, j'ai trouvé un compris, j'execute un script php qui contient exec, mais avec un cron :) Ca marche, mais le probleme est que la base n'est pas totalement sauvegardé ! Ca prend environ de 4 a 5 mo de la base, puis sa sarrete (ca me repond base non sauvegardé) et j'ai quand meme mon fichier sql de sauvegarde mais de 5 mo au lieu des 30 de la base ....

Je sais pas je crois que c mon cron qui ne prend pas le tps de séxécuté jusqu'au bout. Y a moyen de le configurer si c'est ca? Sinon pt est til possible de compresser la base avant de la sauvegarder?

Merci :)
 
WRInaute impliqué
Ben je sias pas moi, quand tu tapes la commandes pour le mysqldump directement dans le shell, ça fait 4 ou 5 Mo aussi ?
 
WRInaute occasionnel
Non ben c bon j'ai reessayé et maintenant ca marche en cron. :) Met ca me sort un fichier de 30 mo alors que sur Mysql il est indiqué que la base fait 36... Alors ca fais comme une sorte de compression ou bien ca ne va tjs pas jusqu'au bout ?

Merci
 
WRInaute impliqué
Oui, ça va jusqu'au bout mais t'as déjà pensé à optimiser ta base (fonction Optimiser dans phpmyadmin par exemple) ?
Le chiffre sera toujours différent car le mysqldump rajoute des instructions mysql (insert, create etc).
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut