Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| sauvegarder_un_site [Le 29/09/2008, 09:27] – rajout de la fonction archivage topazz | sauvegarder_un_site [Le 21/10/2025, 21:10] (Version actuelle) – vétuste / à supprimer : les scripts ont leur place sur des forges git, pas des wiki, et idéalement audités par des pairs, pour être maintenus krodelabestiole | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag> | + | {{tag> |
| ---- | ---- | ||
| Ligne 9: | Ligne 9: | ||
| ====== Sauvegarder un ou des sites internet via FTP et leurs bases de données MySQL ====== | ====== Sauvegarder un ou des sites internet via FTP et leurs bases de données MySQL ====== | ||
| + | |||
| + | |||
| + | |||
| Ligne 16: | Ligne 19: | ||
| Ce script va vous permettre de sauvegarder un ou plusieurs sites internet sur votre disque dur local, ainsi que la(les) base(s) de données MySQL associées. | Ce script va vous permettre de sauvegarder un ou plusieurs sites internet sur votre disque dur local, ainsi que la(les) base(s) de données MySQL associées. | ||
| - | Il utilise lftp pour récupérer les fichiers, | + | Il utilise lftp pour récupérer les fichiers. Pour récupérer les bases de données, il utilise soit mysqldump, soit http:// |
| - | Les sauvegardes ftp vont écraser les fichiers | + | Les sauvegardes ftp vont écraser les fichiers |
| + | Tous les x jours/mois, l' | ||
| Les sauvegardes MySQL créent un fichier date_heure.tar.bz2 ou date_heure.sql.gz pour les sites perso de free | Les sauvegardes MySQL créent un fichier date_heure.tar.bz2 ou date_heure.sql.gz pour les sites perso de free | ||
| Ligne 26: | Ligne 30: | ||
| Vérifiez que [[apt:// | Vérifiez que [[apt:// | ||
| + | |||
| + | |||
| + | |||
| + | |||
| Ligne 37: | Ligne 45: | ||
| < | < | ||
| #!/bin/bash | #!/bin/bash | ||
| - | # Version 0.2 | + | # 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 |
| - | # ATTENTION : lftp, links et mysql-server doivent être installés | + | # 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:// | # - Sauvegarde des bases de données MySQL distantes via mysqldump ou http:// | ||
| # - Sauvegarde de plusieurs sites | # - Sauvegarde de plusieurs sites | ||
| - | |||
| #Variables à renseigner | #Variables à renseigner | ||
| - | sav_complete_tous_les=" | + | sav_complete_tous_les=" |
| - | rep_log=$HOME/ | + | rep_log=$HOME/ |
| #copiez collez le bloc en modifiant le numéro entre crochets, dans l' | #copiez collez le bloc en modifiant le numéro entre crochets, dans l' | ||
| Ligne 56: | Ligne 61: | ||
| nom_du_site[0]=login0.free.fr | nom_du_site[0]=login0.free.fr | ||
| script_http[0]= # adresse http d'un fichier (php par exemple) à appeler | script_http[0]= # adresse http d'un fichier (php par exemple) à appeler | ||
| - | rep_sav_ftp[0]=$HOME/ | + | rep_sav_ftp[0]=$HOME/ |
| rep_sav_sql[0]=$HOME/ | rep_sav_sql[0]=$HOME/ | ||
| serveur_ftp[0]=ftpperso.free.fr | serveur_ftp[0]=ftpperso.free.fr | ||
| utilisateur_ftp[0]=login0 | utilisateur_ftp[0]=login0 | ||
| mdp_ftp[0]=mdp0 | mdp_ftp[0]=mdp0 | ||
| - | rep_ftp[0]=/ | + | liste_rep_ftp[0]="/rep / |
| serveur_sql[0]=sql.free.fr | serveur_sql[0]=sql.free.fr | ||
| utilisateur_sql[0]=login0 | utilisateur_sql[0]=login0 | ||
| mdp_sql[0]=mdp0 # mot de passe mysql | mdp_sql[0]=mdp0 # mot de passe mysql | ||
| - | liste_bases_de_donnees[0]= | + | liste_bases_de_donnees[0]="" |
| # Fin du bloc à paramétrer | # Fin du bloc à paramétrer | ||
| # Début du bloc à paramétrer | # Début du bloc à paramétrer | ||
| - | nom_du_site[1]=mon_site.org | + | nom_du_site[1]=mon_site.org |
| - | script_http[1]= | + | script_http[1]= |
| - | rep_sav_ftp[1]=$HOME/ | + | rep_sav_ftp[1]=$HOME/ |
| - | rep_sav_sql[1]= | + | rep_sav_sql[1]= |
| - | serveur_ftp[1]=ftp.mon_site.org | + | serveur_ftp[1]=ftp.mon_site.org |
| - | utilisateur_ftp[1]=login1 | + | utilisateur_ftp[1]=login1 |
| - | mdp_ftp[1]=mdp1 | + | mdp_ftp[1]=mdp1 |
| - | rep_ftp[1]=/ # répertoire sur le serveur ftp à sauvegarder. Mettre simplement / pour sauver le site en entier | + | 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]="" |
| # Fin du bloc à paramétrer | # Fin du bloc à paramétrer | ||
| Ligne 88: | Ligne 93: | ||
| # | # | ||
| if [ " | if [ " | ||
| + | echo Exécution du script de ${nom_du_site[$i]} | ||
| links -dump ${script_http[$i]} | links -dump ${script_http[$i]} | ||
| } fi | } fi | ||
| Ligne 105: | Ligne 111: | ||
| } fi | } fi | ||
| } fi | } fi | ||
| - | # | + | for rep_ftp in ${liste_rep_ftp[$i]}; |
| + | lftp ftp:// | ||
| + | done | ||
| } fi | } fi | ||
| Ligne 138: | Ligne 146: | ||
| } | } | ||
| + | date_debut_script=" | ||
| + | |||
| + | # On vérifie que lftp, links et mysql-client sont bien installés | ||
| + | if [ ! -e "/ | ||
| + | echo "lftp n'est pas installé. Ce script va l' | ||
| + | sudo apt-get install lftp | ||
| + | } fi | ||
| + | if [ ! -e "/ | ||
| + | echo "links n'est pas installé. Ce script va l' | ||
| + | sudo apt-get install links | ||
| + | } fi | ||
| + | if [ ! -e "/ | ||
| + | echo " | ||
| + | sudo apt-get install mysql-client* | ||
| + | } fi | ||
| + | |||
| + | |||
| + | # On attend d' | ||
| + | while ! ping google.com -A -c1 |grep "1 received" | ||
| + | echo en attente de connexion internet... | ||
| + | sleep 60 | ||
| + | done | ||
| + | |||
| + | |||
| + | # On met à jour les fichiers log | ||
| if [ ! -e " | if [ ! -e " | ||
| mkdir -p $rep_log | mkdir -p $rep_log | ||
| Ligne 148: | Ligne 181: | ||
| + | # On fait toutes les sauvegardes | ||
| len=${# | len=${# | ||
| i=0 | i=0 | ||
| Ligne 156: | Ligne 190: | ||
| done | done | ||
| - | echo La sauvegarde des sites internet s\'est terminée le $(date +%F) à $(date +%H:%M:%S) >> | + | echo La sauvegarde des sites internet |
| + | echo La sauvegarde des sites internet a commencée $date_debut_script et s\'est terminée le $(date +%F) à $(date +%H:%M:%S) | ||
| exit 0 | exit 0 | ||
| Ligne 179: | 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 | + | Par ex, sauvegarder_mysql.php |
| < | < | ||
| <?php | <?php | ||
| + | $mysql_server = ""; | ||
| + | $mysql_login = ""; | ||
| + | $mysql_passwd = ""; | ||
| + | $mysql_bdd = ""; | ||
| + | |||
| $date_actu = date(' | $date_actu = date(' | ||
| - | echo " | + | |
| - | require ($_SERVER[" | + | echo " |
| system(" | system(" | ||
| system(" | system(" | ||
| system(" | system(" | ||
| - | echo " | + | echo " |
| ?> | ?> | ||
| </ | </ | ||
| Ligne 197: | 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, | ||
| + | |||
| + | |||
| + | === Avec Cron === | ||
| + | |||
| + | En tant que root (administrateur), | ||
| + | * / | ||
| + | * / | ||
| + | * / | ||
| + | * / | ||
| + | |||
| + | === Avec Fcron === | ||
| + | |||
| + | Si votre ordinateur n'est pas allumé en permanence, il vaut mieux utiliser [[fcron]], car cron ne s' | ||
| + | |||
| + | Installer fcront : [[apt:// | ||
| + | Puis configurez la sauvegarde : | ||
| + | | ||
| + | Ex : pour faire une sauvegarde 2 fois par semaine : | ||
| + | | ||
| + | Faire CTRL + O pour enregistrer puis CTRL + X pour quitter | ||
