xuyangus 发表于 2018-8-27 10:02:57

Linux+shell管理员的好帮手--批量解压缩

  Linux+shell管理员的好帮手--批量解压缩
  近期公司一直忙于OA的上线工作,做为一个管理员来说,需要给他们不定时提供数据备份及恢复操作,主要操作就是将生产环境中的变化数据还原到测试机器上进行测试。当然前几篇文中有也有介绍到使用shell脚本备份数据及还原数据,今天我们介绍使用shell脚本对指定目录下的数据进行压缩备份及解压覆盖操作,具体见下:
  首先介绍第一个脚本:
  该脚本会将/OAFS目录下的123、gavin文件夹进行压缩,然后移动到指定的目录下;
#!/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类似的格式
#!/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命令下标记。
#!/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
  第四个脚本,批量执行文件删除,我们也是最笨的办法进行删除,因为指定目录下有多个文件,需要对指定的文件进行删除
#!/bin/bash  
sources="/OAFS/abc/"
  
target="/OAFS/"
  
echo ":${sources}:"
  
cd $sources
  
pwd
  
rm -rf zhangsan
  
rm -rf lisi
  第五:批量移动指定文件
  批量移动文件
#!/bin/bash  
sources="/OAFS/abc/"
  
target="/OAFS/"
  
echo ":${sources}:"
  
cd $sources
  
pwd
  
mv zhangsan.tra.gz $target
  
mv lisi.tar.gz $target


页: [1]
查看完整版本: Linux+shell管理员的好帮手--批量解压缩