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 28/10/2008, 10:29]
213.95.41.13
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 221: Ligne 235:
  
 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.
  
  
Ligne 238: Ligne 254:
 Puis configurez la sauvegarde : Puis configurez la sauvegarde :
    ​fcrontab -e    ​fcrontab -e
-Ex : pour faire une sauvegarde 2 fois par semaine : +Ex : pour faire une sauvegarde 2 fois par semaine :
    ​%midweekly * 0-23 ~/​Sauvegardes/​sauver_sites_internet.sh    ​%midweekly * 0-23 ~/​Sauvegardes/​sauver_sites_internet.sh
 Faire CTRL + O pour enregistrer puis CTRL + X pour quitter Faire CTRL + O pour enregistrer puis CTRL + X pour quitter
  • sauvegarder_un_site.1225186177.txt.gz
  • Dernière modification: Le 28/10/2008, 10:29
  • par 213.95.41.13