场景描述:bash
某应用系统,相关备份文件存放在目录:/usr/data_bak/backupsthis
随着时间的累积,系统天天产生的备份文件不断增大,当天产生的备份文件大于10G。spa
致使的问题:code
处理方式:blog
脚本内容,天天早上6点10分将备份文件,移动到指定备份目录。crontab
脚本名称:mv_cron.ship
脚本内容:get
#! /bin/bash path1="/usr/data_bak/" path2="/home/data_bak/pg_bak/" timelimit1="+6" timelimit2="-17" for i in "backups"; do list_newfiles=`cd $path1$i && find -iname "*.zip" -type f | awk '{print substr($1,3)}'` echo "" echo "target folder: $path2" echo "Trying to move those files in $path1$i" echo "$list_newfiles" echo "" OLD_IFS=$IFS IFS=$'\n' arr_newfiles=($list_newfiles) for s in ${arr_newfiles[@]}; do #echo "$s" isfindthisfile=`find $path2 -iname $s` if [ -z "$isfindthisfile" ]; then echo "$path1$i/$s is not in target folder,try to copy!" mv "$path1$i/$s" "$path2/$s.TMP" mv "$path2/$s.TMP" "$path2/$s" echo "$path1$i/$s has been moved successfully!!!" else echo "$path1$i/$s is allready in target folder,trying to copy next !" fi done done IFS=$OLD_IFS
脚本说明:it
path1 是当前系统备份文件所在目录,class
path2 是目标存放备份文件的目录。
第7行,能够根据本身实际备份文件的后缀名,进行查找,这里是.zip文件。
定时任务配置:
用系统自带crontab配置,天天早上6点10分执行脚本。crontab -e 里边添加以下内容:
10 06 * * * /data/mv_cron.sh