68 lines
1.4 KiB
Bash
Executable File
68 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
CD=cd
|
|
DATE=/bin/date
|
|
TAR=/bin/tar
|
|
BZIP2=/bin/bzip2
|
|
GIT=/usr/bin/git
|
|
GPG=/usr/bin/gpg
|
|
PASS=/home/vahagn/.gnupg/backup-passphrase
|
|
SRC=/home/vahagn/git
|
|
KEEP=5
|
|
BACKUP_DIR=/home/vahagn/gdrive/backup
|
|
|
|
TIMESTAMP=`$DATE +%Y%m%d-%H:%M%z`
|
|
LOG=/mnt/hdd/backup/backup.git.$TIMESTAMP.log
|
|
BACKUP=$BACKUP_DIR/git.$TIMESTAMP.tar.bz2.gpg
|
|
SIGNATURE=$BACKUP_DIR/git.$TIMESTAMP.tar.bz2.sig
|
|
|
|
#
|
|
# debug
|
|
#
|
|
#LOG=/home/vahagn/devel/scripts/backup/log.log
|
|
#BACKUP=/home/vahagn/devel/scripts/backup/git.tar.bz2.gpg
|
|
#SRC=/home/vahagn/git/scripts.git
|
|
|
|
#
|
|
# Header
|
|
#
|
|
echo Starting $LOG | tee -a $LOG
|
|
echo start `$DATE` | tee -a $LOG
|
|
#
|
|
# Sync with BitBucket upstream repos.
|
|
#
|
|
$CD $SRC/scripts.git
|
|
$GIT fetch
|
|
$CD $SRC/test.git
|
|
$GIT fetch
|
|
#
|
|
# cd to git directory and then bzip2 all content and crypt it.
|
|
#
|
|
$CD $SRC
|
|
($TAR -cvp . | $BZIP2 -c | $GPG -c --passphrase-file $PASS --output $BACKUP --batch --quiet ) 2>&1| tee -a $LOG
|
|
#
|
|
# Remove old files
|
|
#
|
|
$CD $BACKUP_DIR
|
|
i=0
|
|
for FILE in `ls -t git.*.tar.bz2.gpg`; do
|
|
if [ $i -ge $KEEP ]; then
|
|
echo "$FILE is removed to meet keep number of backups $KEEP." | tee -a $LOG
|
|
rm $FILE 2>&1| tee -a $LOG
|
|
fi;
|
|
i=$(($i+1))
|
|
done
|
|
i=0
|
|
for FILE in `ls -t git.*.tar.bz2.sig`; do
|
|
if [ $i -ge $KEEP ]; then
|
|
echo "$FILE is removed to meet keep number of backups $KEEP." | tee -a $LOG
|
|
rm $FILE 2>&1| tee -a $LOG
|
|
fi;
|
|
i=$(($i+1))
|
|
done
|
|
#
|
|
# Footer
|
|
#
|
|
echo end `$DATE` | tee -a $LOG
|
|
|