shell脚本递归压缩实践

#!/bin/bash

Src_Path=/data/www/logs

Dst_Path=/data/www/logs_bak

for rfile in `find $Src_Path/ -depth -maxdepth 1 -type f |awk -F ‘/‘ ‘{print $NF}‘`

do

tar -zcPvf $Dst_Path/$rfile.tar.gz $Src_Path/$rfile

done

for dir in `find $Src_Path/* -type d|awk -F ‘/‘ ‘{print $NF}‘`

do

mkdir -p $Dst_Path/$dir

for file in `find $Src_Path/$dir/ -type f|awk -F ‘/‘ ‘{print $NF}‘`

do

tar -zcPvf $Dst_Path/$dir/$file.tar.gz $Src_Path/$dir/$file

done

done

  

原文地址:https://www.cnblogs.com/xzlive/p/9379386.html

时间: 2024-11-02 13:28:34

shell脚本递归压缩实践的相关文章

编写Shell脚本的最佳实践

前言 由于工作需要,最近重新开始拾掇shell脚本.虽然绝大部分命令自己平时也经常使用,但是在写成脚本的时候总觉得写的很难看.而且当我在看其他人写的脚本的时候,总觉得难以阅读.毕竟shell脚本这个东西不算是正经的编程语言,他更像是一个工具,用来杂糅不同的程序供我们调用.因此很多人在写的时候也是想到哪里写到哪里,基本上都像是一段超长的main函数,不忍直视.同时,由于历史原因,shell有很多不同的版本,而且也有很多有相同功能的命令需要我们进行取舍,以至于代码的规范很难统一. 考虑到上面的这些原

编写Shell脚本的最佳实践,规范二

需要养成的习惯如下: 代码有注释 #!/bin/bash # Written by steven # Name: mysqldump.sh # Version: v1.0 # Parameters : 无 # Function: mysqldump备份mysql # Create Date: 2016-08-27 缩进有规矩 编码要统一 在写脚本的时候尽量使用UTF-8编码 太长要分行 巧用heredocs 学会查路径 script_dir=$(cd $(dirname $0) && pw

shell脚本和ansible实践MariaDB源码编译自动安装

在前面的博客中已经演示,通过脚本实现MySQL通用二进制的安装,下面通过演示用脚本实现源码编译MariaDB实现自动化,在大规模部署多台MariaDB时,这里使用ansible来实现其自动化部署,可以大大简化运维工程师的时间. 先讲解脚本在本地自动化安装MariaDB,结合上一篇博客和前面自动化实现的MySQL通用二进制格式的安装. 环境:Centos 6.6      mariadb-10.0.13.tar.gz    node5(hostname)   2块硬盘:1块是系统用.1块是作为My

编写Shell脚本的最佳实践,规范一

随着写的SHELL程序越来越多,发现自己每次写都有不同的习惯或者定义了不同的东西,变量名定义得不一样,整个程序缩进不统一,没有注释等问题,等我回过头看这些程序的时候发现很麻烦.所以写了个shell代码规范. 1.1 目的 定义Shell脚本命名和编码规范,统一管理Shell脚本,便于自己和别人查看,提高代码书写速度和美观,暂时只对自己进行约束,其它人只供参考. 1.2 开发工具 shell脚本是个文件,没有开发环境,FC4图形环境下,可用gedit.vi.vim.joe等,推荐使用vim因为这个

shell脚本----周期压缩备份日志文件

一.日志文件样式 二.目标 1.备份压缩.log结尾&&时间样式为“date +%Y%m%d”的日志文件(如:20170912.20160311等) 2.可指定压缩范围(N天前至当天):如:今天.昨天(date -d "-1 day" +%Y%m%d)至今天.前天至今天 压缩命名格式为:日期.tar.gz(或:日期.tar.bz2),压缩N天范围内文件后将会生成N个压缩包 3.可指定压缩模式(二选一):tar czf  或  tar cjf 4.可指定删除范围:删除N天

Shell脚本递归打印指定文件夹中全部文件夹文件

#!/bin/bash #递归打印当前文件夹下的全部文件夹文件. PRINTF() { ls $1 | while read line #一次读取每一行放到line变量中 do [ -d $1/$line ] && { DIR="$1/$line" echo $DIR } DIR1=`dirname $DIR` #求路径. A=`ls -F $DIR1 | grep / | grep "\<$line\>"` #推断line是不是一个文件

Shell脚本递归打印指定目录中所有目录文件

#!/bin/bash #递归打印当前目录下的所有目录文件. PRINTF() { ls $1 | while read line #一次读取每一行放到line变量中 do [ -d $1/$line ] && { DIR="$1/$line" echo $DIR } DIR1=`dirname $DIR` #求路径. A=`ls -F $DIR1 | grep / | grep "\<$line\>"` #判断line是不是一个目录.

用shell脚本递归遍历某个目录下的所有文件并移动到某个指定的目录中

1,先看下脚本cat recursive.sh #!/bin/shread -p "input path:" FilePath function getAllfiles(){for file in ls $FilePathdoif [ -f $file ]thenecho $filemv $file /bak_file/elif test -d $filethenecho "-------------------------------->"cd $fileF

善用工具(2)--Shell脚本

一.Shell脚本的基本功能及使用 1.Shell 是什么? Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务. Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell. 2.Shell 如何运行的? Shell 编程跟 java.php 编