Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
sauvegarder_un_site [Le 13/10/2008, 10:32]
91.171.249.248, 127.0.0.1
sauvegarder_un_site [Le 11/09/2022, 11:38] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 45: Ligne 45:
 <​file>​ <​file>​
 #!/bin/bash #!/bin/bash
-# Version 0.: ajout de la possibilité de sauver une liste de répertoires en ftp pour chaque site internet + installation automatique des logiciels manquant+# Version 0.31 : ajout de la possibilité de sauver une liste de répertoires en ftp pour chaque site internet + installation automatique des logiciels manquant
  
-# FONCTIONNALITÉS : +# FONCTIONNALITÉS :
 #  - Sauvegarde des fichiers distants via FTP #  - Sauvegarde des fichiers distants via FTP
 #  - Sauvegarde des bases de données MySQL distantes via mysqldump ou http://​sql.free.fr/​backup.php pour les sites perso de free #  - Sauvegarde des bases de données MySQL distantes via mysqldump ou http://​sql.free.fr/​backup.php pour les sites perso de free
Ligne 66: Ligne 66:
 utilisateur_ftp[0]=login0 ​    # utilisateur ftp utilisateur_ftp[0]=login0 ​    # utilisateur ftp
 mdp_ftp[0]=mdp0 ​    # mot de passe ftp mdp_ftp[0]=mdp0 ​    # mot de passe ftp
-liste_rep_ftp[0]="/​rep /​rep2/​sous_rep"​ # liste de répertoires sur le serveur ftp à sauvegarder,​ séparés par des espaces. Mettre simplement / pour sauver le site en entier. Dans tous les cas l'​adresse ​ne doit commencer par /. Garder les guillemets+liste_rep_ftp[0]="/​rep /​rep2/​sous_rep"​ # liste de répertoires sur le serveur ftp à sauvegarder,​ séparés par des espaces. Mettre simplement / pour sauver le site en entier. Dans tous les cas l'​adresse doit commencer par /. Garder les guillemets
 serveur_sql[0]=sql.free.fr ​    # adresse du serveur mysql serveur_sql[0]=sql.free.fr ​    # adresse du serveur mysql
 utilisateur_sql[0]=login0 ​    # utilisateur mysql utilisateur_sql[0]=login0 ​    # utilisateur mysql
Ligne 83: Ligne 83:
 liste_rep_ftp[1]="/"​ liste_rep_ftp[1]="/"​
 serveur_sql[1]= serveur_sql[1]=
-utilisateur_sql[1]= ​+utilisateur_sql[1]=
 mdp_sql[1]= mdp_sql[1]=
 liste_bases_de_donnees[1]=""​ liste_bases_de_donnees[1]=""​
Ligne 163: Ligne 163:
  
  
 +# On attend d'​être connecté à internet
 +while ! ping google.com -A -c1 |grep "1 received"​ >/​dev/​null;​ do
 + echo en attente de connexion internet...
 + sleep 60
 +done
 +
 +
 +# On met à jour les fichiers log
 if [ ! -e "​$rep_log/​date_derniere_version_sauvegarde.log"​ ]; then { # Si c'est une première sauvegarde if [ ! -e "​$rep_log/​date_derniere_version_sauvegarde.log"​ ]; then { # Si c'est une première sauvegarde
  mkdir -p $rep_log  mkdir -p $rep_log
Ligne 173: Ligne 181:
  
  
 +# On fait toutes les sauvegardes
 len=${#​nom_du_site[*]} len=${#​nom_du_site[*]}
 i=0 i=0
Ligne 204: Ligne 213:
 Puis, le fichier date_heure.sql.gz sera rappatrié en local dans votre répertoire de sauvegarde avec la sauvegarde des fichiers via lftp. Puis, le fichier date_heure.sql.gz sera rappatrié en local dans votre répertoire de sauvegarde avec la sauvegarde des fichiers via lftp.
  
-Par ex, sauvegarder_mysql.php ​pourrai ​ressembler à ça :+Par ex, sauvegarder_mysql.php ​pourrait ​ressembler à ça :
  
 <​file>​ <​file>​
 <?php <?php
 +$mysql_server = "";​
 +$mysql_login = "";​
 +$mysql_passwd = "";​
 +$mysql_bdd =  "";​
 +
 $date_actu = date('​Y-m-d_H-i-s'​);​ $date_actu = date('​Y-m-d_H-i-s'​);​
-echo "​Sauvegarde ​Mysql en cours...<​BR>"​+ 
-require ($_SERVER["​DOCUMENT_ROOT"​]."/​config/​config.inc.php"​);+echo "​Sauvegarde ​MySQL en cours...<​BR>";​
 system("​mysqldump --host="​.$mysql_server."​ --user="​.$mysql_login."​ --password="​.$mysql_passwd."​ "​.$mysql_bdd."​ > ./​mysql/"​.$date_actu."​.sql"​);​ system("​mysqldump --host="​.$mysql_server."​ --user="​.$mysql_login."​ --password="​.$mysql_passwd."​ "​.$mysql_bdd."​ > ./​mysql/"​.$date_actu."​.sql"​);​
 system("​gzip ./​mysql/"​.$date_actu."​.sql"​);​ system("​gzip ./​mysql/"​.$date_actu."​.sql"​);​
 system("​rm ./​mysql/"​.$date_actu."​.sql"​);​ system("​rm ./​mysql/"​.$date_actu."​.sql"​);​
-echo "​Sauvegarde ​Mysql terminee";​+echo "​Sauvegarde ​MySQL terminee";​
 ?> ?>
 </​file>​ </​file>​
Ligne 222: Ligne 236:
 Faites appeler ce script automatiquement à intervalle régulière par [[cron]] ou [[fcron]] Faites appeler ce script automatiquement à intervalle régulière par [[cron]] ou [[fcron]]
  
 +Vérifiez de temps en temps que le log de sauvegarde. Si celle ci ne s'est pas faite, tentez la manuellement,​ car il se peut que vous ayez rentré un login ou un mot de passe incorrect et que ça bloque.
 +
 +
 +=== Avec Cron ===
 +
 +En tant que root (administrateur),​ copiez le fichier sauver_sites_internet.sh créé vers un de ces répertoire,​ en fonction de la fréquence de sauvegarde désirée :
 +  * /​etc/​cron.hourly
 +  * /​etc/​cron.daily
 +  * /​etc/​cron.weekly/​
 +  * /​etc/​cron.monthly
 +
 +=== Avec Fcron ===
 +
 +Si votre ordinateur n'est pas allumé en permanence, il vaut mieux utiliser [[fcron]], car cron ne s'​exécute qu'à une heure précise de la journée alors que fcron prend en compte le temps pendant lequel reste allumé la machine :
 +
 +Installer fcront : [[apt://​fcron]].
 +Puis configurez la sauvegarde :
 +   ​fcrontab -e
 +Ex : pour faire une sauvegarde 2 fois par semaine :
 +   ​%midweekly * 0-23 ~/​Sauvegardes/​sauver_sites_internet.sh
 +Faire CTRL + O pour enregistrer puis CTRL + X pour quitter
  • sauvegarder_un_site.1223886728.txt.gz
  • Dernière modification: Le 18/04/2011, 14:45
  • (modification externe)