Fonction de mise en miroir du système

#! / 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:







Je suppose que tu aimes

Origine blog.51cto.com/12768454/2544401
conseillé
Classement