近期公司一直忙于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 |