vmail.sh
· 1.4 KiB · Bash
Ham
#!/bin/bash
LOCKFILE=/tmp/bkpvmail
if [ -e ${LOCKFILE} ] && kill -0 `cat ${LOCKFILE}`
then
echo "Já rodando!"
exit
fi
trap "rm -f ${LOCKFILE}; exit" INT TERM EXIT
echo $$ > ${LOCKFILE}
ORIGEM=/home/vmail
SPLITSIZE="100M"
DESTINO=/dados/backup/vmail/
NOME=auto
QTDE=7
CONTADOR=0
PLATFORM=$(uname)
ID=`date +%Y-%m-%d-%H-%M-%S`
LOG=/dados/backup/logs/vmail-$ID.log
echo "Iniciando Backup $0 - `date`" > $LOG
if [ ! -d $DESTINO ]; then
mkdir $DESTINO
fi
ULTIMO_BACKUP=`find $DESTINO -maxdepth 1 -name "$NOME.*" | sort -nr | head -n 1`
find $DESTINO -maxdepth 1 -name "$NOME.*" | sort -nr | tail -n +`expr $QTDE + 1` | while read antigo; do
rm -rf "$antigo" 2>>$LOG 1>>$LOG
done
BACKUP_ATUAL="$DESTINO/$NOME.$ID" 2>>$LOG 1>>$LOG
echo "- Criando pasta $BACKUP_ATUAL" >> $LOG
mkdir $BACKUP_ATUAL 2>>$LOG 1>>$LOG
echo "- Efetuando backup dos emails para $BACKUP_ATUAL" >> $LOG
cp -Rp $ORIGEM/* $BACKUP_ATUAL/ 2>>$LOG 1>>$LOG
echo "- Compactando o backup dos emails" >> $LOG
tar -pczf - $BACKUP_ATUAL/* | split -d -b $SPLITSIZE - $DESTINO/vmail.tar.gz 2>>$LOG 1>>$LOG
echo "- Apagando arquivos não compactados" >> $LOG
rm -fr $BACKUP_ATUAL/* 2>>$LOG 1>>$LOG
echo "- Movendo arquivo compactado $DESTINO/vmail.tar.gz para $BACKUP_ATUAL" >> $LOG
mv $DESTINO/vmail.tar.gz* $BACKUP_ATUAL 2>>$LOG 1>>$LOG
rm -f ${LOCKFILE}
| 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} |
| 43 |