5.08.2014

Backup Dir and Files in Linux Using Tar and Bash

1. Create a bash script
$ vi backup.sh
#!/bin/bash
# This is a script the creates a backup of
# monitor instances: .../monitor/inst => .../monitor/backup

DATE=`date +"%Y%m%d"`
TIMESTAMP=`date +"%Y/%m/%d %T"`
FILENAME="inst_backup_$DATE.tar.gz"
SRCDIR="inst"
DESDIR="backup"

tar -cpzf $DESDIR/$FILENAME $SRCDIR

if [ $? -eq 0 ]; then
    echo "$TIMESTAMP: Backup success: $FILENAME"
else
    echo "$TIMESTAMP: Backup error: $?"
fi

# Any backup older than 30 days are deleted
find ./$DESDIR -type f -mtime +30 -delete -printf "$TIMESTAMP: Deleted %16f\n"

for tar:
c - create
p - preserve file and dir permission
z - compress file
f - target filename

2. Schedule with cron
$ crontab -e
0 5 * * * cd $HOME/scheduler/monitor && ./backup.sh >> $HOME/scheduler/monitor/backup/logs/monitor.backup.log 2>&1

This would schedule a backup at 5am everyday

No comments:

Post a Comment