自动备份指定文件列表中的文件到指定文件夹

因为业务需要,在每次页面变更的时候,都需要将原来的文件备份,下边是自己写的一个自动备份的脚本

#!/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"
时间: 2024-10-12 16:12:41

自动备份指定文件列表中的文件到指定文件夹的相关文章

在文件列表中选择文件,并把一个文件的内容显示在TextArea中

private FileDialog openFileDialog = new FileDialog(this,"Open File",FileDialog.LOAD); else if(eventSource == openFile) { openFileDialog.show(); fileName = openFileDialog.getDirectory()+openFileDialog.getFile(); if(fileName != null) readFile(file

python实现获取文件列表中每个文件出现频率最高的词汇

功能描述: 获取某个路径下的所有文件,提取出每个文件中出现频率最高的前300个字.保存在数据库当中. 前提,你需要配置好nltk #!/usr/bin/python #coding=utf-8 ''' function : This script will create a database named mydb then abstract keywords of files of privacy police. author : Chicho date : 2014/7/28 running

mysql自动备份数据库,同时ftp上传到指定服务器(scp远程获取本地备份)

最近要把服务器托管到电信机房,所以要对数据库进行备份,同时要把备份ftp上传到公司指定服务器. 一.先安装ftp服务 1.查询是否安装vsftpd: rpm -qa |grep vsftpd (rpm的安装:apt-get install rpm) 或者查询当前ftp进程:ps -ef|grep vsftpd ? 或者 ps -ef|grep ftp 2.如果没有就安装yum install vsftpd 3.安装完后看ftp安装目录:ps -ef|grep ftp 发现我的配置文件默认:/et

解决下载ftp文件过程中,浏览器直接解析文件(txt,png等)的问题

搭建了一个ftp服务器,供用户进行上传下载,在下载过程中发现,一些文件,例如txt,jpg,png,pdf等直接被浏览器解析了.在浏览器中显示其内容,没有下载. 下面通过网上查询得到一些解决方法: 1:修改ftp目录下的.htacess文件,这个文件主要做一些类型映射,使各个文件类型映射为  octet-stream 类型,这样浏览器就不能解析了. 但是,我没有在ftp目录下发现该文件,通过filezilla连接服务器, filezilla>服务器>强制显示隐藏文件 ,也没有发现该文件.听说该

springboot项目下载文件功能中-切面-导致的下载文件失败的bug

背景:使用spring提供的 ResponseEntity 和Resource结合,实现的下载文件功能 bug:Resource已经加载到了文件, 并且通过 ResponseEntity 构建了响应,但是页面接收不到文件. 原因:目前初步发现是因为我使用的捕获异常的切面导致的,具体切面怎么会导致 响应结构 的改变,暂时没有搞明白,后续研究透了再补充 解决办法:把下载文件的接口排除在切面处理的范围外,就好了. 吃一堑长一智:浪费了差不多一天的时间在这个问题上,很苦恼,希望下次能使用排除法,更高效的

Android保存的文件显示到文件管理的最近文件和下载列表中

发现Android开发每搞一个和系统扯上关系的功能都要磨死人,对新手真不友好.运气不好难以快速精准的找到有效的资料?? 这篇记录的是Android中如何把我们往存储中写入的文件,如何显示到文件管理的下载列表.最近文件列表中. 假设保存的文件为外部存储中的File file,也许是app私有目录中的(未测试).也许是外部存储根目录中download.pictures等目录中的(没发现问题). 测试支持Android 4.0 - 9.0. 第一步,暴力扔给媒体扫描,管你是不是图片 如果我们的文件是图

ASP.NET Core WEB API 使用element-ui文件上传组件el-upload执行手动文件文件,并在文件上传后清空文件

前言: 从开始学习Vue到使用element-ui-admin已经有将近快两年的时间了,在之前的开发中使用element-ui上传组件el-upload都是直接使用文件选取后立即选择上传,今天刚好做了一个和之前类似的文件选择上传的需求,不过这次是需要手动点击按钮把文件上传到服务器中进行数据导入,而且最多只能够选择一个文件进行上传,上传成功后需要对file-list中的文件列表数据进行清空操作,在这里服务端使用的是ASP.NET Core WEB API来进行文件流数据接收和保存. 一.简单概述e

获取指定目录及子目录中所有文件列表

#region 获取指定目录及子目录中所有文件列表 /// <summary> /// 获取指定目录及子目录中所有文件列表 /// </summary> /// <param name="directoryPath">指定目录的绝对路径</param> /// <param name="searchPattern">模式字符串,"*"代表0或N个字符,"?"代表1个字

RMAN兼容性、控制文件自动备份、保存时间、备份策略、备份脚本(二)

RMAN 程序的兼容性 RMAN 环境由以下5部分组成:(1) RMAN executable(2) Recovery catalog database(3) Recovery catalog schema in the recovery catalog database(4) Target database(5) Auxiliary database (used forduplicate, duplicate for standby or tablespace point-in-time re