Re: [Trisquel-usuarios] Ayuda script simple en bash para copias de seguridad

2017-10-23 Por tema pablo . lilao . lloixa
Más o menos lo he conseguido, pero tengo un problema y es que cuando el  
rsync actúa sobre una carpeta muy grande se demora mucho y para la siguiente  
instrucción me pide la contraseña de sudo y se queda parado hasta que la  
introduzco. Podría ejecutar el script como root y quitar el sudo de "sudo  
rsync" pero no sé si es la mejor forma. ¿Alguna sugerencia?


Por cierto, el script me ha quedado más o menos así. Aunque me gustaría  
pulirlo para que me haga log de errores y muestre el tiempo transcurrido  
entre otras cosas:


#!/bin/bash

#backup harddrive variables
UUID='FA00B5BE00B581E5'
DATE=`date +%d-%m-%Y`
FULLDATE=`date '+%d-%m-%Y %H:%M:%S'`
USERNAME=''
BACKUPROOT='/media/'$USERNAME'/Archie/'
BACKUPDIR=$BACKUPROOT'rsync/'$DATE
#PARTITION=`/usr/bin/readlink -f /dev/disk/by-uuid/$UUID`
PARTITION=`readlink -f /dev/disk/by-uuid/$UUID`
TIMER=3



#
echo $FULLDATE
echo 'UUID: ' $UUID
echo 'Drive Partition: ' $PARTITION;

#check drive and partiton match
if /sbin/blkid | grep -s "$PARTITION" | grep -q "$UUID"; then
echo 'Drive and partition match...'
else
exit
fi

#if [ -z "$DIRECTORY" ]; then
#echo 'No directory present...'
#fi

#check if drive mounted
echo 'Check if drive mounted..'
if grep -qs $PARTITION /proc/mounts; then
#its already mounted
MOUNTED='1'
echo 'Drive already mounted...'
#BACKUPDIR=`grep $PARTITION /proc/mounts | awk '{ print $2 }'`
echo 'Directory: ' $BACKUPDIR
else
#not mounted
MOUNTED='0'
echo 'Mounting drive...'
sudo mkdir -p "$BACKUPROOT"
sudo mount /dev/disk/by-uuid/$UUID "$BACKUPROOT"
echo 'Mounted: ' $BACKUPROOT
fi


#countdown before sync
printf "\nStarting Backup..."
until [ $TIMER = 0 ]; do
printf "$TIMER..."
TIMER=`expr $TIMER - 1`
sleep 1
done
echo ''

#perform home backup
mkdir -p "$BACKUPDIR"
echo "Created backup directory "$BACKUPDIR

sudo rsync -avzHP --stats --delete --human-readable /home $BACKUPDIR
sudo rsync -avzHP --stats --delete --human-readable --exclude 'tmp' --exclude  
'cache' --exclude 'run' /var $BACKUPDIR

sudo rsync -avzHP --stats --delete --human-readable /etc $BACKUPDIR
sudo rsync -avzHP --stats --delete --human-readable /usr/local $BACKUPDIR
sudo rsync -avzHP --stats --delete --human-readable /opt $BACKUPDIR
sudo rsync -avzHP --stats --delete --human-readable /media/$USERNAME/Trabajo  
$BACKUPDIR
sudo rsync -avzHP --stats --delete --human-readable  
/media/$USERNAME/Multimedia $BACKUPDIR
sudo rsync -avzHP --stats --delete --human-readable /media/$USERNAME/Otros  
$BACKUPDIR
sudo rsync -avzHP --stats --delete --human-readable --exclude 'Pelis'  
--exclude 'Series' /media/$USERNAME/Descargas $BACKUPDIR



#clean up
if [ $MOUNTED = 0 ]; then
#unmount and remove dir
echo 'Unmounting drive...'
sudo umount "$PARTITION"
sudo rmdir "$BACKUPROOT"
else
echo 'Leaving drive mounted...'
fi



Re: [Trisquel-usuarios] Ayuda script simple en bash para copias de seguridad

2017-10-23 Por tema pablo . lilao . lloixa
Vale he conseguido hacer la parte de montar el disco automáticamente la  
primera parte otro código que he encontrado  
(frustratedtech.com/post/52316736743/bash-script-mount-drive-automatically-to-backup)