Son aktivite 1 month ago

Backup Email Script

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