脚本说明:
文件备份是linux系统维护的基本工作,此脚本使用tar 的增量备份,可以加到crontab 中定时执行。
该脚本备份的目录或者文件全部写到一个文件中CFG_FILE。
# cat backup.sh
#!/bin/bash
#backup directory or file
#by slitobo 2017/5/31
#notice:
# The scripts read content from "CFG_FILE",you must create it first.
# CFG_FILE content like below:
# /data/sh
# /var/www/html
DES_DIR=/data/backup
INC_DIR=$DES_DIR/snapshot
INC_FILE=snapshot
DATE_DIR=$DES_DIR/$(date +%y%m%d)
INC_TAR_FILE=INC_$(date "+%y%m%d-%H%M").tar.gz
[ -d $DES_DIR ] || mkdir -p $DES_DIR &> /dev/null
[ -d $INC_DIR ] || mkdir -p $INC_DIR &> /dev/null
[ -d $DATE_DIR ] || mkdir -p $DATE_DIR &> /dev/null
[ ! -s CFG_FILE ] && echo -e "\033[31m *** Please create CFG_FILE or add the content ***\033[0m" && exit 10
exec
while read filename
do
if [ ! -d $filename ] && [ ! -f $filename ];then
echo -e "\033[31m $filename IS NOT EXISTS! Please Check Path !!! \033[0m"
sleep 2
else
FILE=$(basename $filename)
DIR=$(dirname $filename)
var=$(echo ${filename:1} | sed 's@/@_@g')
#echo $var
cd $DIR
tar -g $INC_DIR/"$var"_$INC_FILE -czvf $DATE_DIR/"$var"_$INC_TAR_FILE $FILE &> /dev/null
echo "$DATE_DIR/"$var"_$INC_TAR_FILE created..."
fi
done