« LINUX:RSYNC-Rassemblement sur une autre machine » : différence entre les versions

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche
(Page créée avec « __FORCETOC__ =But= Dans ce script, nous rassemblons en un seul endroit sur une autre machine ce que nous voulons sauvegarder. Cet ensemble constitue le premier niveau de s… »)
 
Aucun résumé des modifications
Ligne 5 : Ligne 5 :
Dans notre approche, nous utilisons une machine distante se trouvant sur le même réseau.  
Dans notre approche, nous utilisons une machine distante se trouvant sur le même réseau.  


Nous désirons laisser active cette machine distante que durant la sauvegarde. Ces scriptes s'articulent en trois phases actionnées à partie de la machine dont on veut sauver les fichiers:
Nous désirons laisser active cette machine distante que durant la sauvegarde. Ces scriptes s'articulent en quatre phases actionnées à partie de la machine dont on veut sauver les fichiers:
* Allumer la machine distante
* Allumer la machine distante
* Attendre que la machine distance soit active
* Effectuer la sauvegarde vers la machine distante
* Effectuer la sauvegarde vers la machine distante
* Eteindre la machine distante
* Eteindre la machine distante
Ligne 13 : Ligne 14 :




=Allumer la machine distante=
Ce script s'articule sur l'envoi d'un "MAGIC PACKET" comme expliqué dans cet article: "[[LINUX:Allumage à distance|Allumage à distance]]".
Le nom de l'interface réseau est facultatif si vous n'en avez qu'un; il faut dans ce cas adapter le script. On exécute deux fois cet envoi par sécurité.
Nous avons nommé ce fichier "'''allumer.bat'''"; il se trouve dans le répertoire "/manager/sauvegarde".
----
#!/bin/bash
# Allumage à distance d'une machine du même LAN
MANAGER=/manager/sauvegarde
cd $MANAGER
MAC=$1
INTERFACE=$2
echo "Allumer"
/usr/sbin/ether-wake -i $INTERFACE $MAC
/usr/bin/sleep 60
/usr/sbin/ether-wake -i $INTERFACE $MAC
----
Il attend deux paramètres:
* l'adresse MAC de la carte réseau de la machine distante
* le nom de l'interface réseau de la machine émettrice


= Attendre que la machine distante soit active=
Ce script a pour but de laisser la machine distante s'active mais on attend qu'un certain temps à adapter si nécessaire.
Nous avons nommé ce fichier "'''ping.bat'''"; il se trouve dans le répertoire "/manager/sauvegarde".
----
#!/bin/bash
# Tester via PING qu'une machine distante est allumée; on ne boucle que 100 fois
MANAGER=/manager/sauvegarde
cd $MANAGER
MACHINE=$1
echo "Test PING"
/usr/bin/echo "100% packet loss" > ${MANAGER}/ping1.log
NBS=0
ACTIVE=-1
while [ $NBS -lt '100' ]
do
  /usr/bin/ping -c 2 ${MACHINE} >& ${MANAGER}/ping1.log
  /usr/bin/grep "100% packet loss" ${MANAGER}/ping1.log >  ${MANAGER}/ping2.log
  /usr/bin/grep "unknown host"    ${MANAGER}/ping1.log >> ${MANAGER}/ping2.log
  /usr/bin/grep "inconnu"          ${MANAGER}/ping1.log >> ${MANAGER}/ping2.log
  if [ -s ${MANAGER}/ping2.log ]
  then
  let NBS++
  echo $NBS
  else
  NBS=1000
  ACTIVE=1
  fi
done
/usr/bin/sleep 10
/usr/bin/rm -f ${MANAGER}/ping1.log
/usr/bin/rm -f ${MANAGER}/ping2.log
if [ $ACTIVE = '1' ]
then
  /usr/bin/echo "Machine active: " ${MACHINE}
  exit 1
else
  /usr/bin/echo "Machine inactive: " ${MACHINE}
  exit -1
fi
----
Il attend un paramètre:
* le nom de la machine distante ou son adresse IP





Version du 4 février 2022 à 15:40

But

Dans ce script, nous rassemblons en un seul endroit sur une autre machine ce que nous voulons sauvegarder. Cet ensemble constitue le premier niveau de sauvegarde, le plus actuel de la sauvegarde.

Dans notre approche, nous utilisons une machine distante se trouvant sur le même réseau.

Nous désirons laisser active cette machine distante que durant la sauvegarde. Ces scriptes s'articulent en quatre phases actionnées à partie de la machine dont on veut sauver les fichiers:

  • Allumer la machine distante
  • Attendre que la machine distance soit active
  • Effectuer la sauvegarde vers la machine distante
  • Eteindre la machine distante

Mais la seconde partie peut être individualisée afin d'effectuer une sauvegarde sur une machine se trouvant sur un tout autre site à travers Internet. Il faut dans ce cas adapter les firewalls se trouvant sur le chemin (PAT).


Allumer la machine distante

Ce script s'articule sur l'envoi d'un "MAGIC PACKET" comme expliqué dans cet article: "Allumage à distance". Le nom de l'interface réseau est facultatif si vous n'en avez qu'un; il faut dans ce cas adapter le script. On exécute deux fois cet envoi par sécurité. Nous avons nommé ce fichier "allumer.bat"; il se trouve dans le répertoire "/manager/sauvegarde".


#!/bin/bash
# Allumage à distance d'une machine du même LAN
MANAGER=/manager/sauvegarde
cd $MANAGER
MAC=$1
INTERFACE=$2
echo "Allumer"
/usr/sbin/ether-wake -i $INTERFACE $MAC
/usr/bin/sleep 60
/usr/sbin/ether-wake -i $INTERFACE $MAC

Il attend deux paramètres:

  • l'adresse MAC de la carte réseau de la machine distante
  • le nom de l'interface réseau de la machine émettrice


Attendre que la machine distante soit active

Ce script a pour but de laisser la machine distante s'active mais on attend qu'un certain temps à adapter si nécessaire. Nous avons nommé ce fichier "ping.bat"; il se trouve dans le répertoire "/manager/sauvegarde".


#!/bin/bash
# Tester via PING qu'une machine distante est allumée; on ne boucle que 100 fois
MANAGER=/manager/sauvegarde
cd $MANAGER
MACHINE=$1
echo "Test PING"
/usr/bin/echo "100% packet loss" > ${MANAGER}/ping1.log
NBS=0
ACTIVE=-1
while [ $NBS -lt '100' ]
do
 /usr/bin/ping -c 2 ${MACHINE} >& ${MANAGER}/ping1.log
 /usr/bin/grep "100% packet loss" ${MANAGER}/ping1.log >  ${MANAGER}/ping2.log
 /usr/bin/grep "unknown host"     ${MANAGER}/ping1.log >> ${MANAGER}/ping2.log
 /usr/bin/grep "inconnu"          ${MANAGER}/ping1.log >> ${MANAGER}/ping2.log
 if [ -s ${MANAGER}/ping2.log ]
 then
  let NBS++
  echo $NBS
 else
  NBS=1000
  ACTIVE=1
 fi
done
/usr/bin/sleep 10
/usr/bin/rm -f ${MANAGER}/ping1.log
/usr/bin/rm -f ${MANAGER}/ping2.log
if [ $ACTIVE = '1' ]
then
 /usr/bin/echo "Machine active: " ${MACHINE}
 exit 1
else
 /usr/bin/echo "Machine inactive: " ${MACHINE}
 exit -1
fi

Il attend un paramètre:

  • le nom de la machine distante ou son adresse IP




->retour à RSYNC