« LINUX:RSYNC-Rassemblement sur une autre machine » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 11 : | Ligne 11 : | ||
* Eteindre 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. | 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). | Il faut dans ce cas adapter les firewalls se trouvant sur le chemin (PAT). Sur la machine distante, on peut limiter l'accès à l'adresse IP de l'émetteur si cette adresse est fixe soit limiter l'accès au pays qui l'héberge. | ||
Ligne 17 : | Ligne 17 : | ||
Ce script s'articule sur l'envoi d'un "MAGIC PACKET" comme expliqué dans cet article: "[[LINUX:Allumage à distance|Allumage à distance]]". | 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é. | 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''' | Nous avons nommé ce fichier "'''allumer.bat'''". | ||
---- | ---- | ||
#!/bin/bash | #!/bin/bash | ||
# Allumage à distance d'une machine du même LAN | # Allumage à distance d'une machine du même LAN | ||
MAC=$1 | MAC=$1 | ||
INTERFACE=$2 | INTERFACE=$2 | ||
MANAGER=$3 | |||
cd $MANAGER | |||
echo "Allumer" | echo "Allumer" | ||
/usr/sbin/ether-wake -i $INTERFACE $MAC | /usr/sbin/ether-wake -i $INTERFACE $MAC | ||
Ligne 30 : | Ligne 30 : | ||
/usr/sbin/ether-wake -i $INTERFACE $MAC | /usr/sbin/ether-wake -i $INTERFACE $MAC | ||
---- | ---- | ||
Il attend | Il attend trois paramètres: | ||
* l'adresse MAC de la carte réseau de la machine distante | * l'adresse MAC de la carte réseau de la machine distante | ||
* le nom de l'interface réseau de la machine émettrice | * le nom de l'interface réseau de la machine émettrice | ||
* le répertoire contenant les scripts | |||
= Attendre que la machine distante soit active= | = 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. | 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''' | Nous avons nommé ce fichier "'''ping.bat'''". | ||
---- | ---- | ||
#!/bin/bash | #!/bin/bash | ||
# Tester via PING qu'une machine distante est allumée; on ne boucle que 100 fois | # Tester via PING qu'une machine distante est allumée; on ne boucle que 100 fois | ||
MANAGER= | MACHINE=$1 | ||
MANAGER=$2 | |||
cd $MANAGER | cd $MANAGER | ||
echo "Test PING" | echo "Test PING" | ||
/usr/bin/echo "100% packet loss" > ${MANAGER}/ping1.log | /usr/bin/echo "100% packet loss" > ${MANAGER}/ping1.log | ||
Ligne 75 : | Ligne 75 : | ||
fi | fi | ||
---- | ---- | ||
Il attend | Il attend deux paramètres: | ||
* le nom de la machine distante ou son adresse IP | |||
* le répertoire contenant les scripts | |||
=Eteindre la machine distante= | |||
Ce script a pour but d'éteindre la machine distante. | |||
Nous avons nommé ce fichier "'''eteindre.bat'''". | |||
---- | |||
#!/bin/bash | |||
# Eteindre à distance une machine | |||
MACHINE=$1 | |||
manager=$2 | |||
cd $MANAGER | |||
echo "Eteindre" | |||
/usr/bin/ssh -p 6333 -i ${MANAGER}/key/serveur-distant-rsync-key sauvegarde@${MACHINE} "sudo shutdown -h now" | |||
---- | |||
Il attend deux paramètres: | |||
* le nom de la machine distante ou son adresse IP | * le nom de la machine distante ou son adresse IP | ||
* le répertoire contenant les scripts | |||
Version du 4 février 2022 à 17:25
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). Sur la machine distante, on peut limiter l'accès à l'adresse IP de l'émetteur si cette adresse est fixe soit limiter l'accès au pays qui l'héberge.
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".
#!/bin/bash # Allumage à distance d'une machine du même LAN MAC=$1 INTERFACE=$2 MANAGER=$3 cd $MANAGER echo "Allumer" /usr/sbin/ether-wake -i $INTERFACE $MAC /usr/bin/sleep 60 /usr/sbin/ether-wake -i $INTERFACE $MAC
Il attend trois 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
- le répertoire contenant les scripts
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".
#!/bin/bash # Tester via PING qu'une machine distante est allumée; on ne boucle que 100 fois MACHINE=$1 MANAGER=$2 cd $MANAGER 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 deux paramètres:
- le nom de la machine distante ou son adresse IP
- le répertoire contenant les scripts
Eteindre la machine distante
Ce script a pour but d'éteindre la machine distante. Nous avons nommé ce fichier "eteindre.bat".
#!/bin/bash # Eteindre à distance une machine MACHINE=$1 manager=$2 cd $MANAGER echo "Eteindre" /usr/bin/ssh -p 6333 -i ${MANAGER}/key/serveur-distant-rsync-key sauvegarde@${MACHINE} "sudo shutdown -h now"
Il attend deux paramètres:
- le nom de la machine distante ou son adresse IP
- le répertoire contenant les scripts