Quiero fijar una tarea programada a rsync un sistema remoto a una partición de copia de seguridad, algo así como:RSync sólo si el sistema de archivos está montado
bash -c 'rsync -avz --delete --exclude=proc --exclude=sys [email protected]:/ /mnt/remote1/'
Me gustaría ser capaz de "establecer y olvidarse de él" pero ¿qué pasa si /mnt/remote1
se desmonta? (Después de reiniciar o algo así) me gustaría un error si /mnt/remote1
no está montado, en lugar de llenar el sistema de archivos local.
Editar:
Esto es lo que me ocurrió con un script, las mejoras de limpieza apreciadas (especialmente para el vacío, entonces ... otra cosa, no podía dejarlos errores de bash vacío o)
#!/bin/bash
DATA=data
ERROR="0"
if cut -d' ' -f2 /proc/mounts | grep -q "^/mnt/$1\$"; then
ERROR=0
else
if mount /dev/vg/$1 /mnt/$1; then
ERROR=0
else
ERROR=$?
echo "Can't backup $1, /mnt/$1 could not be mounted: $ERROR"
fi
fi
if [ "$ERROR" = "0" ]; then
if cut -d' ' -f2 /proc/mounts | grep -q "^/mnt/$1/$DATA\$"; then
ERROR=0
else
if mount /dev/vg/$1$DATA /mnt/$1/data; then
ERROR=0
else
ERROR=$?
echo "Can't backup $1, /mnt/$1/data could not be mounted."
fi
fi
fi
if [ "$ERROR" = "0" ]; then
rsync -aqz --delete --numeric-ids --exclude=proc --exclude=sys \
[email protected]$1.domain:/ /mnt/$1/
RETVAL=$?
echo "Backup of $1 completed, return value of rsync: $RETVAL"
fi
mejor respuesta aquí. – Nacht
excepto que es mejor usar '! mountpoint -q/dest || rsync -a/source// dest' – Nacht