#! / bin / sh
# Auteur: yukai
# 1. Montez la maison d'image clonezilla.
# Données: 2020.10.28
#set -x
# Types: local_dev, ssh_server, samba_server, nfs_server
#sed -i '6703i ocs-lvm2-stop' / usr / share / drbl / sbin / ocs-functions
si ["$ #" -ne "1"]
puis
. / usr / share / drbl / sbin / drbl-conf-functions
. /etc/drbl/drbl-ocs.conf
. / usr / sare / drbl / sbin / ocs-functions
. /etc/ocs/ocs-live.conf
# Charger le fichier de langue
ask_and_load_lang_set en_US.UTF-8
être
#Paramer setting
Systemname = `hostname`
Hdisk = `cat / proc / cmdline | sed 's / hdisk = /: /' | gawk -F: '{print $ 3}' | sed 's / \" // g'`
Passwd = `cat / proc / cmdline | sed 's / passwd = /: /' | gawk -F: '{print $ 3}' | cut -d" "-f1`
Uuid = `cat / proc / cmdline | sed 's / uuid = /: /' | gawk -F: '{print $ 3}' | cut -d" "-f1`
Hwsn = $ (dmidecode -s numéro-de-série-système 2> / dev / null | awk '/ ^ [^ #] / {print $ 1}')
Ipaddr = `/ sbin / ifconfig -a | grep inet | grep -v 127.0.0.1 | grep -v inet6 | awk '{print $ 2}' | tr -d" addr: "| sed -n 1p`
Résultat = ""
Mountpoint = "/ home / partimag"
Cdata = `date +% Y% m% d% H% M`
Mountip = "xxxxxxxxx"
Mountpasswd = "xxxxxx"
Mountuser = "racine"
MountSize = ""
Vgname = VolGroup00
Titre = ""
Restore_version = ""
IsBackup = ""
Statut = ""
BackupName = ""
IsRestory = ""
RestoryName = ""
Nom de fichier = ""
Message = ""
Delfilename = ""
function error_info () {
["$ BOOTUP" = "color"] && $ SETCOLOR_FAILURE
echo $ * >> /tmp/install.log
[-z "$ Title"] && Title = "Par défaut"
[-z "$ IsBackup"] && IsBackup = "Par défaut"
[-z "$ BackupName"] && BackupName = "Par défaut"
[-z "$ IsRestory"] && IsRestory = "Par défaut"
[-z "$ RestoryName"] && RestoryName = "Par défaut"
curl -H "Content-Type: application / json" -X POST -d "{\" Sn \ ": \" $ Hwsn \ ", \" IpAddr \ ": \" $ Ipaddr \ ", \" HostName \ " : \ "$ Systemname \", \ "Title \": \ "$ Title \", \ "Status \": \ "finish \", \ "IsBackup \": \ "$ IsBackup \", \ "BackupName \ ": \" $ BackupName \ ", \" IsRestory \ ": \" $ IsRestory \ ", \" RestoryName \ ": \" $ RestoryName \ ", \" Passwd \ ": \" $ Passwd \ ", \" Raison \ ": \" $ * \ ", \" Result \ ": \" Failed \ ", \" Uuid \ ": \" $ Uuid \ "}" http://xxx.xxx.xxx.xxx:8081 / api / osinstall / v1 / périphérique / backupRestory
umount $ Mountpoint
["$ BOOTUP" = "color"] && $ SETCOLOR_NORMAL
}
function result_info () {
echo $ * >> /tmp/install.log
[-z "$ Title"] && Title = "Par défaut"
[-z "$ Status"] && Status = "en cours d'exécution"
[-z "$ IsBackup"] && IsBackup = "Par défaut"
[-z "$ BackupName"] && BackupName = "Par défaut"
[-z "$ IsRestory"] && IsRestory = "Par défaut"
[-z "$ RestoryName"] && RestoryName = "Par défaut"
[-z "$ Result"] && Result = "Par défaut"
curl -H "Content-Type: application / json" -X POST -d "{\" Sn \ ": \" $ Hwsn \ ", \" IpAddr \ ": \" $ Ipaddr \ ", \" HostName \ " : \ "$ Systemname \", \ "Title \": \ "$ Title \", \ "Status \": \ "$ Status \", \ "IsBackup \": \ "$ IsBackup \", \ "BackupName \ ": \" $ BackupName \ ", \" IsRestory \ ": \" $ IsRestory \ ", \" RestoryName \ ": \" $ RestoryName \ ", \" Passwd \ ": \" $ Passwd \ ", \ "Raison \": \ "$ * \", \ "Résultat \": \ "$ Résultat \", \ "Uuid \": \ "$ Uuid \"} "http://xxx.xxx.xxx.xxx : 8081 / api / osinstall / v1 / périphérique / backupRestory
}
function env_check () {
si [ ! `cat / proc / cmdline | grep -o" sauvegarde \ | restauration "`]
puis
Message = "Échec du jeu de paramètres"
error_info $ Message
sortie 1
être
si [ ! $ Passwd]
puis
Message = "Échec de la définition du mot de passe"
error_info $ Message
sortie 1
être
}
#env_check
# 1. Montez la maison d'image clonezilla.
# Types: local_dev, ssh_server, samba_server, nfs_server
si ["$ #" -eq "1"]
puis
Delfilename = 1 $
cmd = "rm -fr" $ Mountpoint / $ Delfilename
sshpass -p $ Mountpasswd ssh $ Mountuser @ $ Mountip -o StrictHostKeyChecking = non $ cmd
si ["$?" -ne "0"]
puis
sortie 1
autre
sortie 0
être
autre
sshpass -p $ Mountpasswd ssh $ Mountuser @ $ Mountip -o StrictHostKeyChecking = pas de 'sortie'
si ["$?" -ne "0"]
puis
Message = "La connexion à distance a échoué"
error_info $ Message
sortie 1
être
être
# MountSize = `sshpass -p $ Mountpasswd ssh $ Mountuser @ $ Mountip -o StrictHostKeyChecking = no" df -h | grep home | awk '{print \ $ 4}' && exit "`
sshfs -o ssh_command = 'sshpass -p aaPA18ww ssh' -o cache = yes, allow_other $ Mountuser @ $ Mountip: / home / partimag $ Mountpoint
si ["$?" -ne "0"]
puis
Message = "Le point dur n'a pas pu être connecté"
error_info $ Message
sortie 1
être
env_check
cat / proc / cmdline | grep -o restaurer
si [$? -eq "0"]
puis
sed -i '6703i ocs-lvm2-stop' / usr / share / drbl / sbin / ocs-functions
Title = "Restauration du disque dur $ Hdisk"
Restore_version = `cat / proc / cmdline | sed 's / restore_version = /: /' | gawk -F: '{print $ 3}' | cut -d" "-f1`
IsRestory = "Oui"
RestoryName = $ Restore_version
Message = "la restauration est en cours"
result_info $ Message
#echo "$ Passwd" | / usr / sbin / ocs-sr -g auto -e1 auto -e2 -t -r -j2 -k -p cmd restoreparts $ restore_version sda1 sda2 sda3 sda4
echo "$ Passwd" | / usr / sbin / ocs-sr -g auto -e1 auto -e2 -t -r -j2 -k -p cmd restoreparts $ Restore_version $ Hdisk
si ["$?" -eq "0"]
puis
str = `cat /var/log/clonezilla.log | grep" Impossible d'utiliser le programme partclone pour enregistrer ou restaurer une image "`
str2 = `cat /var/log/clonezilla.log | grep -i" avertissement "`
str3 = `cat /var/log/clonezilla.log | grep -i" Échec "`
si ["$ str"]
puis
Message = `cat /var/log/clonezilla.log | grep -B1" Impossible d'utiliser le programme partclone pour enregistrer ou restaurer une image "| sed -n 1p`
error_info $ Message
sortie 1
être
si ["$ str2"]
puis
Message = `cat /var/log/clonezilla.log | grep -i" avertissement "| sed -n 1p`
error_info $ Message
sortie 1
être
si ["$ str3"]
puis
Message = `cat /var/log/clonezilla.log | grep -i" Échec "| sed -n 1p`
error_info $ Message
sortie 1
être
Statut = "terminer"
Résultat = "normal"
Message = "Restauration réussie"
result_info $ Message
autre
# Message = "Échec de la restauration"
Message = `cat /var/log/clonezilla.log | grep -i" Échec \ | avertissement "| sed -n 1p`
error_info $ Message
sortie 1
être
être
cat / proc / cmdline | grep -o sauvegarde
si [$? -eq "0"]
puis
#if [ʻecho $ Hdisk | grep [1-9] | awk '{print $ 1}' `]
#puis
# Title = "Sauvegarde de la partition du disque dur"
#autre
# Title = "Sauvegarde complète du disque dur"
#être
Title = "Sauvegarde du disque dur $ Hdisk"
IsBackup = "Oui"
Nom de fichier = `cat / proc / cmdline | sed 's / function = /: /' | gawk -F: '{print $ 3}' | cut -d" "-f1`
BackupName = $ Nom de fichier
Message = "la sauvegarde est en cours"
result_info $ Message
si [-z $ Nom de fichier]
puis
Message = "Échec de la définition du nom de fichier"
error_info $ Message
sortie 1
être
#echo "$ Passwd
# $ Passwd "| / usr / sbin / ocs-sr -q2 -j2 -z1p -i 4096 -sfsck -enc -p cmd saveparts $ FILENAME sda1 sda2 sda3 sda4
echo "$ Passwd
$ Passwd "| / usr / sbin / ocs-sr -q2 -j2 -z1p -i 4096 -sfsck -enc -p cmd saveparts $ Nom de fichier $ Hdisk
si ["$?" -eq "0"]
puis
str = `cat /var/log/clonezilla.log | grep" Impossible d'utiliser le programme partclone pour enregistrer ou restaurer une image "`
str2 = `cat /var/log/clonezilla.log | grep -i" avertissement "`
str3 = `cat /var/log/clonezilla.log | grep -i" Échec "`
si ["$ str"]
puis
Message = `cat /var/log/clonezilla.log | grep -B1" Impossible d'utiliser le programme partclone pour enregistrer ou restaurer une image "| sed -n 1p`
error_info $ Message
sortie 1
être
si ["$ str2"]
puis
Message = `cat /var/log/clonezilla.log | grep -i" avertissement "| sed -n 1p`
error_info $ Message
sortie 1
être
si ["$ str3"]
puis
Message = `cat /var/log/clonezilla.log | grep -i" Échec "| sed -n 1p`
error_info $ Message
sortie 1
être
Statut = "terminer"
Résultat = "normal"
Message = "Sauvegarde réussie"
result_info $ Message
autre
Message = `cat /var/log/clonezilla.log | grep -i" Échec \ | avertissement "| sed -n 1p`
error_info $ Message
sortie 1
être
être
Effet de réalisation: