pataluc a écrit :
déja pour le script, ca ne me parait pas très prudent... si un jour qqun déplace le site, ton cd se vautre, et il efface tout la ou il est... j'aurais plutot fait un Code :
- rm -Rf /var/www/vhosts/site-demo/httpdocs
|
ou alors au moins vérifier que le répertoire existe bien avant...
|
La remarque est fondée (bien qu'on puisse remplacer "cd machin; rm -fr *" par "cd machin && rm -fr *" ce qui évite au rm de se lancer si le cd se vautre). Mais généralement j'évite moi-aussi de faire des cd dans mes scripts, je préfère travailler en indiquant où bosser. Toutefois ça peut aussi être dangereux car voici ce que j'ai fait un jour...
J'avais l'habitude, sur ma sun solaris, de purger régulièrement tmp. Je faisais donc
Ca marchait parfaitement. Puis un jour, j'ai voulu aller plus vite et j'ai tapé
Code :
- rm -fr /tmp/* /tmp/.*
|
Et là, la commande a commencé à durer... durer... Je regardais mon écran sans trop comprendre... puis soudain j'ai réalisé que dans ".*" il avait aussi "..". Et effectivement le rm était remonté à la racine et balayait toute l'arborescence. Total => réinstallation de ma machine. Pas grave car il n'y avait rien de primordial mais pas amusant non plus. Donc méfiance envers les rm *
nero27 a écrit :
Maintenant, j'aimerais faire la même chose pour la base de donnée, mais je ne vois pas comment faire.
Voici les commandes mysql à faire pour commencer :
Code :
- drop database site-demo
- create database site-demo
|
Puis ensuite l'envoi de la sauvegarde dans la base :
Code :
- zcat sauvegarde.sql.gz | mysql --user=login --password=pass site-demo
|
pataluc a écrit :
et sinon pour la base, je ne vois pas ce qui te bloque... tu as tout dit... éventuellement, mets juste ton drop et ton create au début de ton fichier sauvegarde.sql.gz et ca devrait rouler...
|
|
On peut mettre les lignes suivantes
Code :
- drop database IF EXISTS site-demo;
- create database site-demo;
- use site-demo;
|
au début du fichier sql. Le "if exists" a été rajouté à MySQL v5. Mais il semble que dans cet outil, le nom de la bdd n'est pas fixé à l'avance puisqu'on te demande de lancer une connexion sur "site-demo". Or si tu mets le nom de la bdd en dur dans le script sql, tu ne pourras plus le paramétrer ensuite.
Il y a aussi la solution de lancer les commandes en live depuis un script qui reçoit le nom de la bdd en paramètre. Un truc de ce style
Code :
- #!/bin/sh
- rep="/var/www/vhosts/site-demo"
- bdd=${1:-site-demo}
- cd "$rep"
- rm -Rf httpdocs
- tar xjpvf httpdocs.tar.bz2
- echo "drop database if exists $bdd;" |mysql --user=login --password=pass
- echo "create database $bdd;" |mysql --user=login --password=pass
- zcat sauvegarde.sql.gz | mysql --user=login --password=pass "$bdd"
|
Message édité par Sve@r le 17-07-2009 à 20:25:12
---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.