近期公司一直忙于OA的上线工作,做为一个管理员来说,需要给他们不定时提供数据备份及恢复操作,主要操作就是将生产环境中的变化数据还原到测试机器上进行测试。当然前几篇文中有也有介绍到使用shell脚本备份数据及还原数据,今天我们介绍使用shell脚本对指定目录下的数据进行压缩备份及解压覆盖操作,具体见下:
首先介绍第一个脚本:
该脚本会将/OAFS目录下的123、gavin文件夹进行压缩,然后移动到指定的目录下;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#!/bin/bash sources= "/OAFS/123 /OAFS/gavin"
target= "/OAFS/BAK_DIR/"
function successfulllog() {
echo "$(date +%Y-%m-%d_%H:%M:%S) - Backup directory: $1 to $1.tar.gz and mv $target is successful" >> /var/log/tarbak .log
} function faildlog() {
echo "$(date +%Y-%m-%d_%H:%M:%S) - Backup directory: $1 to $1.tar.gz and mv $target is Faild" >> /var/log/tarbak .log
} for source in $sources
do if [ -d "$source" ]; then
tar -zcPf "$source" . tar .gz $ source
mv $ source . tar .gz $target
successfulllog $ source
else faildlog $ source
fi done |
第二个脚本:我们需要将指定目录下的文件、文件夹进行独立压缩,然后移动到指定的目录下:
注:该脚本执行的时候,如果有文件的话,会将文件格式进行重新命名压缩文件命名:不会出现a.txt.tar.gz类似的格式
1
2
3
4
5
6
7
8
9
|
#!/bin/bash sources= /OAFS/ABC/DATA
target= /OAFS/BAK_DIR
cd $sources
for source in ` ls `; do
[ -f "$source" ]&& a=${ source %%.*}||a=$ source
tar cvzfp $a. tar .gz $ source
mv $a. tar .gz $target
done |
第三个脚本:批量执行指定目录指定文件的解压缩到指定目录;
该脚本会将/OAFS/abc目录下的压缩文件,进行解压,然后执行解压的文件会在tar命令下标记。
1
2
3
4
5
6
7
8
|
#!/bin/bash sources= "/OAFS/abc/"
target= "/OAFS/"
echo ":${sources}:"
cd $sources
pwd tar -zxvf zhangsan. tar .gz -C $target
tar -zxvf lisi. tar .gz -C $target
|
注:如果需要对指定目录下的所有压缩文件进行解压的话,我们只需要修改格式即可
tar -zxvf *.tar.gz
第四个脚本,批量执行文件删除,我们也是最笨的办法进行删除,因为指定目录下有多个文件,需要对指定的文件进行删除
1
2
3
4
5
6
7
8
|
#!/bin/bash sources= "/OAFS/abc/"
target= "/OAFS/"
echo ":${sources}:"
cd $sources
pwd rm -rf zhangsan
rm -rf lisi
|
第五:批量移动指定文件
批量移动文件
1
2
3
4
5
6
7
8
|
#!/bin/bash sources= "/OAFS/abc/"
target= "/OAFS/"
echo ":${sources}:"
cd $sources
pwd mv zhangsan.tra.gz $target
mv lisi. tar .gz $target
|
本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1856215,如需转载请自行联系原作者