Bienvenido(a) a Alcance Libre 07/10/2022, 07:15

Alcance Libre Foros

 Índice del foro > Todo acerca de Linux > Programas y Aplicaciones New Topic Post Reply
 Crear script para disco USB
Tópico anterior Tópico siguiente
   
al-serv
 05/30/18 11:24AM (Leído 1,353 veces)  

Miembro Activo

Estado: desconectado
Forum User

Identificado: 03/01/08
Mensajes: 641
Localización:Cataluña
buenas tardes! tengo un script que no me funciona bien y faltan cosas pero no es lo mio, a ver si alguien me puede ayudar Smile

En el código que mostrare quiero que haga:

1.- Monta un disco USB ( correctamente ) - Ya lo hace bien

No hace bien:
2.- Comprueba si se ha montado, sino no continua el script
3.- Tiene que comprobar si el espacio libre es > 75 %
4.- Eliminar los ficheros más antiguos si el espacio libre es < 75 %
5- hacer un loop ( para comprobar si ya queda > 75 % de espacio libre )

Si hace bien
7.- El snapshot de les vm's ya lo hace correctamente -> exporta al USB Disc el fixero y elimina el snapshot
6.- Desmonta el disco USBDesmuntar el disc USB

El script es el siguiente, gracias por adelantado:

PHP Formatted Code


#!/bin/bash

# Settings
mount /dev/sdg1 /media/USB/
backup_dir="/media/USB"
backup_ext=".xva"
date=$(date +%Y-%m-%d_%H-%M-%S)

# el ficher mes antic  find -type f -printf "%T+ %p\0" | sort -z | grep -zom 1 ".*" | cat
# eliminar en funció del tamany lliure
#(df -h | grep -E $FILESYSTEM | tr -s ' ' | cut -d ' ' -f 5 | tr -d %) if [ $USODISCO -ge 75 ];


# VMs to backup

vm_backup_list=()
#  web
vm_backup_list[0]="04a171c2-8bec-2ca3-e3eb-b973dd679b00"
# CONTABLE-IV
vm_backup_list[1]="d661b416-46ce-56c4-fec7-a1ec101c7b4e"
#DB
vm_backup_list[2]="d489a678-4050-9ef8-3b2f-1b551fae4121"
#FS02
vm_backup_list[3]="a882869d-e87d-75f6-42b0-9f29809cc911"
#FW
vm_backup_list[4]="59f0fb46-01c4-41c7-077e-99ddeecbc4a7"

vm_backup_list_count=${#vm_backup_list[@]}

# Get VM list

vm_list_string=`xe vm-list is-control-domain=false`
IFS="
"

vm_list_array=($vm_list_string)
vm_list_count=${#vm_list_array[@]}

# Create arrays to use

vm_uuid_array=()
vm_label_array=()
vm_log=()


# Start Log

vm_log[${#vm_log[@]}]="Starting VM Backup: $date"
vm_log[${#vm_log[@]}]="-----------------------------"


# Get VMs to export

vm_log[${#vm_log[@]}]="Parsing VM list"

key=0
index=0

for line in ${vm_list_array[@]}; do

        if [ ${line:0:4} = "uuid" ]; then

                uuid=`expr "$line" : '.*: \(.*\)$'`
                label=`expr "${vm_list_array[key+1]}" : '.*: \(.*\)$'`

                vm_uuid_array[index]=$uuid
                vm_label_array[index]=$label

                vm_log[${#vm_log[@]}]="Added VM #$index: $uuid, $label"

                let "index = $index+1"

        fi

        let "key = $key+1"

done

vm_log[${#vm_log[@]}]="Done parsing VM list"


# Backup VMs

vm_log[${#vm_log[@]}]="Backup VMs"

key=0

for uuid in ${vm_uuid_array[@]}; do

        # Set VM backup state

        backup_vm=false

        # If the backup list is empty

        if [ $vm_backup_list_count = 0 ]; then

                # Backup all VMs

                backup_vm=true

        # Else check to see if the VM is to be backed up

        else

                for backup_uuid in ${vm_backup_list[@]}; do

                        if [ $uuid = $backup_uuid ]; then

                                backup_vm=true
                                break

                        fi

                done

        fi

        # If the VM is being backed up

        if [ $backup_vm = true ]; then

                # Log

                vm_log[${#vm_log[@]}]="VM: $uuid"

                # Label

                label=${vm_label_array[key]}

                # Create snapshot

                snapshot=`xe vm-snapshot vm=$uuid new-name-label=backup_$date`
                vm_log[${#vm_log[@]}]="Snapshot: $snapshot"

                # Set as VM not template

                snapshot_template=`xe template-param-set is-a-template=false uuid=$snapshot`
                vm_log[${#vm_log[@]}]="Set as VM"

                # Export

                snapshot_export=`xe vm-export vm=$snapshot filename="$backup_dir$label-$date$backup_ext"`
                vm_log[${#vm_log[@]}]="Export: $snapshot_export"

                # Delete snapshot

                snapshot_delete=`xe vm-uninstall uuid=$snapshot force=true`
                vm_log[${#vm_log[@]}]="Delete Snapshot: $snapshot_delete"

        # Else the VM isnt being backed up

        else

                # Log

                vm_log[${#vm_log[@]}]="VM: $uuid"
               vm_log[${#vm_log[@]}]="Ignoring Backup"

        fi

        # Increment Key

        let "key = $key+1"

done

vm_log[${#vm_log[@]}]="Export Complete"
vm_log[${#vm_log[@]}]="

"

# Logging

#echo ${vm_uuid_array[@]}
#echo ${vm_label_array[@]}

for log in ${vm_log[@]}; do
        echo $log
done
 
Profile Email Website
 Quote
Contenido generado en: 0.10 segundos New Topic Post Reply
 Todas las horas son CDT. Hora actual 07:15 AM.
Tópico normal Tópico normal
Tópico Pegado Tópico Pegado
Tópico bloqueado Tópico bloqueado
Mensaje Nuevo Mensaje Nuevo
Tópico pegado con nuevo mensaje Tópico pegado con nuevo mensaje
Tópico bloqueado con nuevo mensaje Tópico bloqueado con nuevo mensaje
Ver mensajes anónimos 
Los usuarios anónimos pueden enviar 
Se permite HTML Filtrado 
Contenido censurado