前段时间写的使用python脚本自动备份系统文件,今天来写一个使用shell脚本增量备份系统文件,顺便复习一下shell脚本相关的命令,这个脚本可以根据自己的需求来备份不同的文件或者文件夹,进行完整备份和增量备份。直接上脚本如下:
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
56
57
58
59
60
|
#!/bin/sh
#Automatic Backup Linux System Files
#Author wugk 2013-11-22
#Define Variable
SOURCE_DIR=(
$*
)
TARGET_DIR=
/data/backup/
YEAR=`
date
+%Y`
MONTH=`
date
+%m`
DAY=`
date
+%d`
WEEK=`
date
+%u`
FILES=system_backup.tgz
CODE=$?
if
[ -z
"$*"
];
then
echo
-e
"Please Enter Your Backup Files or Directories\n--------------------------------------------\nExample $0 /boot /etc ......"
exit
fi
#Determine Whether the Target Directory Exists
if
[ ! -d $TARGET_DIR/$YEAR/$MONTH/$DAY ];
then
mkdir
-p $TARGET_DIR/$YEAR/$MONTH/$DAY
echo
"This $TARGET_DIR is Created Successfully !"
fi
#EXEC Full_Backup Function Command
Full_Backup()
{
if
[
"$WEEK"
-
eq
"7"
];
then
rm
-rf $TARGET_DIR
/snapshot
cd
$TARGET_DIR/$YEAR/$MONTH/$DAY ;
tar
-g $TARGET_DIR
/snapshot
-czvf $FILES `
echo
${SOURCE_DIR[@]}`
[
"$CODE"
==
"0"
]&&
echo
-e
"--------------------------------------------\nThese Full_Backup System Files Backup Successfully !"
fi
}
#Perform incremental BACKUP Function Command
Add_Backup()
{
cd
$TARGET_DIR/$YEAR/$MONTH/$DAY ;
if
[ -f $TARGET_DIR/$YEAR/$MONTH/$DAY/$FILES ];
then
read
-p
"These $FILES Already Exists, overwrite confirmation yes or no ? : "
SURE
if
[ $SURE ==
"no"
-o $SURE ==
"n"
];
then
sleep
1 ;
exit
0
fi
#Add_Backup Files System
if
[ $WEEK -
ne
"7"
];
then
cd
$TARGET_DIR/$YEAR/$MONTH/$DAY ;
tar
-g $TARGET_DIR
/snapshot
-czvf $$_$FILES `
echo
${SOURCE_DIR[@]}`
[
"$CODE"
==
"0"
]&&
echo
-e
"-----------------------------------------\nThese Add_Backup System Files Backup Successfully !"
fi
else
if
[ $WEEK -
ne
"7"
];
then
cd
$TARGET_DIR/$YEAR/$MONTH/$DAY ;
tar
-g $TARGET_DIR
/snapshot
-czvf $FILES `
echo
${SOURCE_DIR[@]}`
[
"$CODE"
==
"0"
]&&
echo
-e
"-------------------------------------------\nThese Add_Backup System Files Backup Successfully !"
fi
fi
}
Full_Backup;Add_Backup
|
以上脚本仅供参考,还有很多需要优化、完善和调整的地方,欢迎大家提出意见。
本文转自 wgkgood 51CTO博客,原文链接:http://blog.51cto.com/wgkgood/1330200