Last active 1 month ago

Backup Email Script

Lucas Teske revised this gist 12 years ago. Go to revision

1 file changed, 42 insertions

vmail.sh(file created)

@@ -0,0 +1,42 @@
1 + #!/bin/bash
2 + LOCKFILE=/tmp/bkpvmail
3 + if [ -e ${LOCKFILE} ] && kill -0 `cat ${LOCKFILE}`
4 + then
5 + echo "Já rodando!"
6 + exit
7 + fi
8 +
9 + trap "rm -f ${LOCKFILE}; exit" INT TERM EXIT
10 + echo $$ > ${LOCKFILE}
11 + ORIGEM=/home/vmail
12 + SPLITSIZE="100M"
13 + DESTINO=/dados/backup/vmail/
14 + NOME=auto
15 + QTDE=7
16 + CONTADOR=0
17 + PLATFORM=$(uname)
18 + ID=`date +%Y-%m-%d-%H-%M-%S`
19 + LOG=/dados/backup/logs/vmail-$ID.log
20 +
21 +
22 + echo "Iniciando Backup $0 - `date`" > $LOG
23 +
24 + if [ ! -d $DESTINO ]; then
25 + mkdir $DESTINO
26 + fi
27 + ULTIMO_BACKUP=`find $DESTINO -maxdepth 1 -name "$NOME.*" | sort -nr | head -n 1`
28 + find $DESTINO -maxdepth 1 -name "$NOME.*" | sort -nr | tail -n +`expr $QTDE + 1` | while read antigo; do
29 + rm -rf "$antigo" 2>>$LOG 1>>$LOG
30 + done
31 + BACKUP_ATUAL="$DESTINO/$NOME.$ID" 2>>$LOG 1>>$LOG
32 + echo "- Criando pasta $BACKUP_ATUAL" >> $LOG
33 + mkdir $BACKUP_ATUAL 2>>$LOG 1>>$LOG
34 + echo "- Efetuando backup dos emails para $BACKUP_ATUAL" >> $LOG
35 + cp -Rp $ORIGEM/* $BACKUP_ATUAL/ 2>>$LOG 1>>$LOG
36 + echo "- Compactando o backup dos emails" >> $LOG
37 + tar -pczf - $BACKUP_ATUAL/* | split -d -b $SPLITSIZE - $DESTINO/vmail.tar.gz 2>>$LOG 1>>$LOG
38 + echo "- Apagando arquivos não compactados" >> $LOG
39 + rm -fr $BACKUP_ATUAL/* 2>>$LOG 1>>$LOG
40 + echo "- Movendo arquivo compactado $DESTINO/vmail.tar.gz para $BACKUP_ATUAL" >> $LOG
41 + mv $DESTINO/vmail.tar.gz* $BACKUP_ATUAL 2>>$LOG 1>>$LOG
42 + rm -f ${LOCKFILE}
Newer Older