目录备份脚本

备份执行目录到 BACKUP_DIR, 压缩文件名为 目录名+’_'+时间+’_'+随机数.tar.gz

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/sh
PWD=`pwd`
ARGC=$#
BDIR=$BACKUP_DIR
 
function usage() {
    echo "usage: <source dir> <backup dir>"
}
 
if [ $ARGC != 1 ] && [ $ARGC != 2 ];then
    usage
    exit
fi
 
if [ $ARGC == 1 ] && [ "$BDIR" == '' ];then
    usage
    exit
fi
 
if [ $ARGC == 2 ];then
    BDIR=$2
fi
 
if ! [ -d $BDIR ];then
    echo "backup dir '$2' is not found"
    usage
    exit
fi
 
if ! [ -d $1 ];then
    echo "source dir '$1' is not found"
    usage
    exit
fi
 
LAST=`echo $BDIR | awk -F/ '{print $(NF)}'`
EXT=`date +'%Y%m%d%H%M%S-%s'`
NAME=`echo $1 | awk -F/ '{print $(NF)}'`
if [ "$NAME" == '' ];then
    NAME=`echo $1 | awk -F/ '{print $(NF-1)}'`
fi
 
if [ "$LAST" == '' ];then
    FILE="$BDIR$NAME-$EXT.tar.gz"
else
    FILE="$BDIR/$NAME-$EXT.tar.gz"
fi
 
cd $1
cd ..
 
tar -cvzf $FILE ./$NAME
 
echo ""
echo "backup $1 to $FILE success"

Leave a comment

Your comment