shell脚本—根据文件个数定时备份(转载)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本—根据文件个数定时备份(转载)相关的知识,希望对你有一定的参考价值。
#!/bin/bash ############################### #FileName:backupLogTimer.sh #Function:定时备份日志文件 #Version:0.1 #Authon:xueya #Date:2014.06.26 ############################### #获取当前路径 path=`pwd` echo "current1 path :${path}" #循环执行 while [[ 1 -eq 1 ]] do #查看文件夹下的文件 fileList=`ls 2>/dev/null` #遍历此文件夹下的文件 for pFile in $fileList do echo "current path: ${path}/${pFile}" #判断是否属于文件夹 if [[ -d "${pFile}" ]];then #计算文件夹数量 num=`ls -l ./tmp|grep "^d"|wc -l` #判断文件数是否超过了20000 if [[ ${num} -gt 5 ]];then #获取当前时间 currentTime=`date +%Y%m%d%H%M%S` #定义压缩文件名称 tarFileName="/home/hubin/backup/${pFile}_${currentTime}.tar.gz" #压缩文件 echo "backup files to $tarFileName" tar -zcvf ${tarFileName} `find ${path}/${pFile} -mmin +60 -type d` --remove-files fi fi done #等待1小时 sleep 600 done
值得注意的几个点:
1. 首行需以#!开头,告诉系统其后路径所指定的程序即是解释此脚本文件的Shell程序
2. 对于变量的取值。取值的时候要在变量名前加$
3. 在""中显示变量时,最好能加上{},如${tarFileName},防止和后面的字符拼接到一起,出现混淆,系统识别不出变量名
4. 注意条件测试部分中的空格。在方括号的两侧都有空格,在-f、-lt、=等符号两侧同样也有空格。如果没有这些空格,Shell解释脚本的时候就会出错。如if
5. 定义变量时,=两侧不要有空格
6. 当变量中包含shell指令时,需要用``,是!旁边的那个。
以上是关于shell脚本—根据文件个数定时备份(转载)的主要内容,如果未能解决你的问题,请参考以下文章
学透shell 带你写常用的100个 shell 脚本(一)定时删除过期文件