How to config an automatic backup of an Ubuntu server to an USB external hard disk
First plug in the disk to an usb port so that Linux mount it.
Eu li a partir https://help.ubuntu.com/community/RenameUSBDrive
"dispositivos rotulados que automount serão montados no diretório / media usando seu rótulo como o ponto de montagem, /meios de comunicação/<rótulo>. ex: /media / my_external"
A unidade USB é auto montado um eu descobrir o dispositivo usando:
df
or find out the device descriptor with
mount
I see /dev/sdc1 on /media/VERBATIM type vfat (rw)
anyway I can identify my device also if not mounted with
fdisk -l
My device is /dev/sdc1 and the label is VERBATIM
The USB disk is a VFAT filesystem, e eu quero mantê-lo assim .
A cópia de segurança será realizada por sbackupd, ele vai fazer um backup completo a cada 21 dias e diariamente ele vai fazer um backup incremental.
Infelizmente, se outro disco externo está conectado antes da mina, o / dev / sdc1 será mais um FS de outro disco.
This will happen especially if You do not change the label to the disk
The problem is to assure that the usb-disk (vfat Fs) está montada corretamente antes do backup no lugar certo.
Infelizmente VFAT não suportam UUID, por isso não é possibile para verificar se um vFAT FS é montado através do "ls -l / dev / disk / by-uuid" comando.
Claro Podemos usar o / etc / mtab, mas é possÃvel que o fs é montado na posição errada devido ao mecanismo de plug-in USB.
O problema é que / dev / sdc1 não é necessário o disco direito , especialmente com uma etiqueta como "textualmente"
Eu deveria mudar o rótulo do disco para algo único modo que para assegurar sbackupd copiar os dados no lugar certo.
(Em teoria, eu também deve implementar um cheque e montar todos os discos disponÃveis e verificar-lo Mas eu não vou fazer aqui !)
abaixo http://embraceubuntu.com/2006/03/01/editing-fat32-partition-labels-using-mtools/
I assure a label to the disk
# instale mtools:
sudo apt-get install mtools
#change the label to the disk ( o mesmo deve ser montado antes?)
mlabel -i / dev / sdc1 -s ::SERVERCOPY
Now We should modify /etc/mtools.conf to specify a windows-like drive letter:
eco "" >> /etc/mtools.conf
echo "# # rÃgido USB de backup" >> /etc/mtools.conf
echo "unidade p: arquivo = "/dev / sdc1 "" >> /etc/mtools.conf
echo "" >> /etc/mtools.conf
The disk is p:
So now verify again the label of the disk
mlabel -s p:
Volume label is SERVERCOPY
Ok, Você deveria fazê-lo, Eu não vou fazer beacouse já configurado sbackup para copiar dados em / media / VERBATIM.
assim, formar agora em diante, please use Your disk label instead of VERBATIM
Now let do the script that will verify /dev/sdc1 is mounted on /media/SERVERCOPY or VERBATIM or whatever is Your disk label.
mount /dev/sdc1 /media/VERBATIM
Now let's do a script that verify all conditions and start sbackup notice I'm poor in bash
# --------------------- cortar o código a partir daqui
#!/bin / bash
# Loris Palmerini 2009 - copyright http://www.mozilla.org/MPL/MPL-1.1.html
# Este script bash verificar se um determinado sistema de arquivos VFAT é montado em um determinado ponto de montagem
# VFAT Fs ter uma etiqueta, e no Ubuntu disco USB é montar em / media /"rótulo"
#
# Assim, a montagem é verificada também contra o rótulo e umounted se montado em outro lugar
# se não é possÃvel montar o FS corretamente, envie um e-mail ao admin
# Se montado corretamente iniciar sbackup
# Se não está presente sbackup , send an email
mountpoint="/media / VERBATIM"; # sbackup is configured for that destination
deviceid="/dev / sdc1 ";
label ="SERVERCOPY";
# a "encontro" of today in form of YYmmDDhhMMss
todayis=$(data +% Y% m% d% H% H% S) # Veja o comando data
# script para enviar e-mail simples a partir daqui http://theos.in/shell-scripting/send-mail-bash-script/
SUBJECT="Backup arquivado para montar o dispositivo"
FROMEMAIL ="server@yourdomain.info"
DESTEMAIL="youremail@adminsite.info"
EmailMessage ="/tmp / emailmessage.txt"
eco "Erro na montagem de backup FS "$ID de dispositivo" em "$ponto de montagem" com rótulo de volume "$rótulo > $EMAILMESSAGE
echo "Hoje é "$de hoje" . Por favor verifique se a unidade está devidamente conectado ou backup não será feito" >> $EmailMessage
# umount device
if grep $deviceid /etc/mtab > /dev / null 2>&1; then
umount $deviceid
fi
# umount any device in the mount point
if grep $mountpoint /etc/mtab > /dev / null 2>&1; then
umount $mountpoint
fi
# umount the fs if mounted automatically
if grep $label /etc/mtab > /dev / null 2>&1; then
umount $label
fi
# mount the device on the rigth place
if ! mount -v -t vfat $ deviceid $ mountpoint > /dev / null 2>&1; então
# eco "Não capaz de montar - envie um e-mail ao admin"
# send an email using /bin/mail
/usr/sbin/sendmail -f $FROMEMAIL $DESTEMAIL < $EMAILMESSAGE
exit 1
ser
# now verify the label of the mounted disk
commandstring="mlabel -s p:"
X = $($CommandString)
Y =" rótulo de volume é "$rótulo" "
E se [ "$X" != "$e" ]; then
echo "Não capaz de montar rótulo de volume "$rótulo" envie um e-mail ao admin"
# send an email
/usr/sbin/sendmail -f $FROMEMAIL $DESTEMAIL < $EMAILMESSAGE
exit 1
ser
# Let's verify if sbackup is installed
if [ -x / usr / sbin / sbackupd ]; then
/usr/sbin/sbackupd
else
echo "sbackup não encontrado - envie um e-mail usando o sendmail"
EmailMessage ="O utilitário sbackup não está devidamente installed.Please instalá-lo"
# /usr / sbin / sendmail -f $ FROMEMAIL $ DESTEMAIL < $EMAILMESSAGE
exit 1
ser
# --------------- END OF SCRIPT CUT TO HERE
Now , salvar o arquivo no diretório raiz , suppose as the name mount_and_sbackup.sh
You can change the /etc/cron.d/sbackup file that way
0 3 * * * root, se [ -x /root/mount_and_sbackup.sh ]; em seguida, / raiz / mount_and_sbackup; ser;
-------------------------- Loris Palmerini
How-to reference
Little guide to bash
http://www.panix.com/~elflord/unix/bash-tute.html
on exit status
http://tldp.org/LDP/abs/html/exit-status.html
concerning the labelling of a Vfat and fat32 disk
https://help.ubuntu.com/community/RenameUSBDrive
http://embraceubuntu.com/2006/03/01/editing-fat32-partition-labels-using-mtools/
Como isso:
Curti Carregando...