首页 > 代码库 > 自动备份指定文件列表中的文件到指定文件夹
自动备份指定文件列表中的文件到指定文件夹
因为业务需要,在每次页面变更的时候,都需要将原来的文件备份,下边是自己写的一个自动备份的脚本
#!/bin/bash #读取指定文件中文件列表,文件列表中每行一个 #脚本自动读取每行数据,判断文件是否存在,如果存在,则复制到按照时间命名的备份文件中。如果否则记录路径名称 FILE_LISTS=list.txt #定义列表文件名称,脚本必须和文件列表文件在同一目录下 CUR_PATH=`pwd` #定义当前路径,执行脚本必须到脚本目录,如果要通过计划任务执行,则需要进行一定修改,将此路径修改为指定路径 CUR_TIME=`date +%Y%m%d_%H_%m` #去当前系统时间为备份文件名称 BAK_DIRNAME=bak_"$CUR_TIME" #备份文件夹名称 TAR_PATH="$CUR_PATH/""$BAK_DIRNAME" LOG_NAME="$TAR_PATH"/log.txt if [ -d $TAR_PATH ] #判断文件是否存在,很少会出现在1分钟内执行两次的情况 then echo "文件夹存在" else mkdir -p "$TAR_PATH" #级联创建相关路径 fi cd "$TAR_PATH" if [ `pwd` != "$TAR_PATH" ] then echo "路径进入失败" exit 99 else #rm -fr * #删除操作需要慎重使用,此脚本在一般情况下不会出现一分钟备份两次的情况,如果有这种特殊情况,可以手动清除 echo "ok" fi COUNT_TOTAL=0 COUNT_BAKSUCESS=0 COUNT_NOTEXSIT=0 #准备工作完成,开始执行备份文件 cd "$CUR_PATH" echo "$CUR_TIME">"$LOG_NAME" for line in `cat $FILE_LISTS` do #判断路径中的文件是否存在 if [ -e "$line" ] then cp "$line" "$TAR_PATH"&&echo "$line ok">>"$LOG_NAME"&&let "COUNT_BAKSUCESS+=1" else echo "$line not exit">>"$LOG_NAME"&&let "COUNT_NOTEXSIT+=1" fi let "COUNT_TOTAL+=1" done echo "total is :$COUNT_TOTAL">>"$LOG_NAME" echo "sucess is :$COUNT_BAKSUCESS">>"$LOG_NAME" echo "not exist is :$COUNT_NOTEXSIT">>"$LOG_NAME"
自动备份指定文件列表中的文件到指定文件夹
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。