Différences
Ci-dessous, les différences entre deux révisions de la page.
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.3 : 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 |