Comment créer des sauvegardes linux / unix automatisés

Video: Tâches automatisées (batch processing) : comment le faire ?

« Un point à temps sauve neuf », va un vieux dicton. Dans le monde des ordinateurs que nous appelons à ce point que les sauvegardes. Lors de l`exécution d`une infrastructure informatique de production, il est impératif que nous parvenions à un taux de disponibilité sur nos serveurs et applications de plus près à cent pour cent que possible. Bien qu`il existe un certain nombre de façons de faire une infrastructure informatique solide, il est impossible de faire preuve d`échec. Nous faisons donc un plan B.

Les serveurs sont faits de trois grandes couches - le matériel, le système d`exploitation et les applications et les données. En cas de défaillance matérielle, il est assez simple de remplacer la machine par un nouveau. Installation du système d`exploitation et les applications aussi sont relativement simples. La partie qui est difficile à remplacer est les données et la configuration que vos applications utilisent. En cas d`échec c`est la partie qui ne peut pas être remplacé. Nous avons donc sauvegarder ces données sur une base régulière. Nous le soutenons de telle manière qu`il devient facile de récupérer en cas d`urgence.

Je vous guidera à travers l`écriture d`un script pour effectuer des sauvegardes quotidiennes sur votre système. Pour cet exercice, je vais utiliser un serveur qui exécute le serveur Web Apache, un serveur de base de données MySQL, et a un répertoire sur le /maison partition qui contient des données qui doivent être sauvegardées. Nous allons également sauvegarder les journaux d`accès Apache la veille dans un répertoire de sauvegarde séparée. Tout d`abord, nous devons créer un répertoire dans lequel nos sauvegardes résideront. Dans le cadre de l`exercice que j`ai créé un répertoire appelé BACKUP sur le /opter cloison. Nous organiserons les sauvegardes dans ce répertoire afin que chaque jour de sauvegarde réside dans un répertoire formé comme celui-ci - / Opt / BACKUP / AN / MOIS / DATE /. Ainsi, le 11 Août 2008, les sauvegardes entreront en / Opt / BACKUP / 2008/08/11 /. Créons ces répertoires. Exécuter l`ensemble des commandes suivantes en tant racine utilisateur.

# mkdir -p / opt / backup / DATA / 2008
# cd / opt / backup / DATA / 2008
# mkdir 01 02 03 04 05 06 07 08 09 10 11 12
# cd / opt / backup / DATA /
# cp -r 2008 2009
# cd / opt / backup /
# cp -r DATA LOG

Voir note ci-dessous avant d`émettre cette dernière commande.

# chown -R calvin.calvin / opt / backup

Nous avons maintenant deux ensembles de répertoires de sauvegarde - une pour les données et un autre pour les fichiers journaux. Avec les sauvegardes répertoires créés, nous sommes maintenant prêts à commencer à écrire le script. Remarque: J`utilise l`utilisateur calvin tout au long de cet article. S`il vous plaît remplacer calvin avec votre propre nom d`utilisateur.


################################################## #########
# CODE ICI COMMENCE
################################################## #########

#! / Bin / bash

Video: Réaliser une sauvegarde automatique sur un serveur local (Synology)

# SERVEUR DE DONNÉES DE BACKUP V1.0

#########################
# BACKUP CONFIG
#########################

Video: [TUTO] Comment sauvegarder son PC quotidiennement sur un disque dur externe ?

#configure le mois, la date et le jour
AN = `date + » % Y »` # 2008
MOIS = `date + » % m »` # 11
JOUR = `date + » % d »` # 14
HIER = `la date -date = » hier » +% Y-% m-% d` # 2008-11-13
YESTERDAY_DATE = `la date -date = hier +% d` # 13
YESTERDAY_MONTH = `la date -date = hier +% m` # 11
YESTERDAY_YEAR = `la date -date = hier +% Y` # 2008
AUJOURD`HUI = `date +% Y-% m-% d` # 2008-11-14
Today_date = `date +% d` # 14

# répertoires à sauvegarder à
DATA_BACKUP_PARENT_DIR = / opt / backup / DATA / # lt; - Modifiez cette sauvegarde de données dir
LOG_BACKUP_PARENT_DIR = / opt / backup / LOG / # lt; - Modifier ce votre journal de sauvegarde dir

# Apache document répertoire racine
APACHE_DOCROOT = / var / www / html /

# MySQL config de base de données
DB_IP ="localhost" # lt; - Modifiez ce à l`adresse IP de votre serveur de base de données
DB_USER ="calvin" # lt; - Modifiez ce à votre nom d`utilisateur de base de données
DB_PASS ="calvin_password" # lt; - Modifiez ce mot de passe à votre base de données
DB_NAME ="clientlist" # lt; - Modifiez ceci à votre nom de base de données

# Apache Log Dir
APACHE_LOG_DIR ="/ Var / log / httpd /" # lt; - Modifiez ce aux données de chemin de vos journaux

Dir # Fichiers d`application de
APP_FILES ="/ Home / calvin / application_files /" # lt; - Modifiez ce le chemin du répertoire de données

# Config Dir
CONFIG_DIR ="/etc/" # lt; - Modifiez ce dans le répertoire de données de chemin

# Adresse mail de rapport
EMAIL_ID ="[email protected]" # lt; - Modifiez ceci à votre ID e-mail

################################################## #########
# SAUVEGARDE DE DONNÉES
################################################## #########

# Créer et allez dans le répertoire de sauvegarde
cd $ DATA_BACKUP_PARENT_DIR $ / AN / MOIS $
mkdir $ JOUR
cd $ JOUR

# Sauvegarde de base de données
mysqldump -h $ {} DB_IP -u $ {} DB_USER -p $ {DB_PASS} $ {} DB_NAME gt; $ {} DB_NAME .db
tar $ {} DB_NAME .tar.gz $ {} DB_NAME de Db
rm -f $ {} DB_NAME .db

# / Etc sauvegarde
goudron -zcf etc.tar.gz / etc

# Sauvegarde d`application
goudron -zcf Apache_Doc_Root.tar.gz $ {} APACHE_DOCROOT
goudron -zcf App_Files.tar.gz $ {} APP_FILES

################################################## #########
# BACKUP LOG
################################################## #########

# Créer et allez dans le répertoire de sauvegarde
cd $ LOG_BACKUP_PARENT_DIR / $ YESTERDAY_YEAR / $ YESTERDAY_MONTH
mkdir $ YESTERDAY_DATE
cd YESTERDAY_DATE de $

# HTTPD Sauvegarde du journal
for i in $ {} APACHE_LOG_DIR / access_log $ {HIER} * -. faire cp $ i .- done
pour i dans access_log $ {} HIER * -. gzip faire i- $ done

################################################## #########
# Envoyer des notifications de courrier
################################################## #########

# Courrier notifier
du $ s DATA_BACKUP_PARENT_DIR $ / AN / $ MOIS / JOUR $ / * | mail « Backup pour $ {HOSTNAME} :: DATA fait :) » $ {} EMAIL_ID
du -shc $ LOG_BACKUP_PARENT_DIR / $ YESTERDAY_YEAR / $ YESTERDAY_MONTH / $ YESTERDAY_DATE / * | mail « Backup pour $ {HOSTNAME} :: LOG fait :) » $ {} EMAIL_ID

################################################## #########
# CODE ICI FIN
################################################## #########

Enregistrer ce script dans un répertoire tel que /home/calvin/scripts/backup.sh. Donner des autorisations exécutables au fichier:

# chmod + x /home/calvin/scripts/backup.sh

Maintenant, vous êtes bon pour aller. Exécutez le script sous forme de votre ligne de commande:

# /home/calvin/scripts/backup.sh

Vous pouvez également ajouter ce script comme une tâche cron afin qu`il sera exécuté sur une base quotidienne à un moment de votre choix. Si vous voulez exécuter ce script à 4 heures par jour faire ce qui suit:

# crontab -e

Créer une nouvelle ligne dans le fichier qui ouvre et ajoutez ce qui suit:

Video: BackUtil :: Script d'automatisation de sauvegarde sous Linux! (100%)

0 4 * * * /home/calvin/scripts/backup.sh gt; / Dev / null

Voilà. Votre serveur va maintenant sauvegarder vos données, base de données, les fichiers de configuration, fichiers application et fichiers journaux / Opt / backup tous les jours à 4 heures. Une chose intelligente à faire serait maintenant d`exporter ces sauvegardes vers une machine distante de sorte que vous ne perdez pas vos sauvegardes si votre serveur fait face à des problèmes. Nous verrons comment le faire dans mon prochain article.

Articles connexes