Cursos Servidores con Centos 6
Sistema Operativo ALDOS
MongoDB Banner
Curso PHP
Dezoft

Si algunos de nuestros foros, manuales, ALDOS, paquetería o proyectos te han resultado de ayuda, apreciaremos mucho nos apoyes con un donativo.

 Índice > Todo acerca de Linux > Programas y Aplicaciones Nuevo tema Publicar Respuesta
 Crear script para disco USB
Tema anterior Tema siguiente
   
al-serv
Publicado en 30/05/18 04:24 (Leído 552 veces)  

Miembro Activo
Forum User

Inscrito: 01/03/08 Publicaciones: 631
País: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 Sonrisa

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
 
Perfil Sitio Web
 Citar
Contenido generado en: 0,27 segundos Nuevo tema Publicar Respuesta
 Todas las horas son UTC. Hora actual 11:15 .
Tema normal Tema normal
Tema persistente Tema persistente
Tema cerrado Tema cerrado
Nueva publicación Nueva publicación
Persistente con nueva publicación Persistente con nueva publicación
Cerrado con nueva publicación Cerrado con nueva publicación
Ver publicaciones anónimas 
Usuarios anónimos pueden publicar 
Se permite HTML Filtrado 
Contenido censurado