使用命令行备份指定文件夹并保留最新N份

客户需要对网站进行定期备份,并保留最近30天的文件,编写后以下脚本,通过Windows的任务计划进行调度

对比手工和任务计划调度运行情况来看,手工运行中可直接调用RAR.exe和网络进行传输,但是任务计划调度则需要调用安装RAR的程序并且无法进行网络进行传输

 1 ::  用于备份网站文件
 2 rem ***********************需要配置***********************************
 3 rem 设置需要备份目录
 4 set sourcePath=D:\esa_app\ekp-j\ekp
 5
 6 rem 存放压缩文件远程服务器地址、用户名和密码
 7 set remoteServerPath=10.164.117.75
 8 set remoteUserName=administrator
 9 set remotePassword=admin12345!
10
11 rem 远程服务器存放备份文件目录
12 set remoteTargetPath=d$\ekp_back
13
14 rem 压缩程序路径
15 set rarProgExePath="C:\Program Files (x86)\WinRAR\RAR.exe"
16 rem ****************************************************************
17
18 rem 临时备份目录存放目录
19 set workRootPath=D:\$$TEMP_EKP_BACK
20
21 rem 备份保留份数
22 rem set backupNumber=30
23 set backupNumber=5
24
25 rem 形成备份文件名称和存放路径
26 set workFileName=ekp%date:~0,4%%date:~5,2%%date:~8,2%
27 set backWorkPath=%workRootPath%\%workFileName%
28 set strBatCurrPath=%cd%
29
30 rem 创建备份工作目录
31 if not exist %workRootPath% md /s /q %workRootPath%
32 if exist %backWorkPath% rmdir /s /q %backWorkPath%
33 md %backWorkPath%
34
35 rem 把源文件拷贝到工作目录中
36 xcopy %sourcePath% %backWorkPath% /s /e /h /y >%workRootPath%\log_backup_ekp%date:~0,4%%date:~5,2%%date:~8,2%.log
37
38 rem 压缩文件
39 cd/d "%backWorkPath%\"
40 %rarProgExePath% -y a "%backWorkPath%.rar" -r *
41
42 rem 把压缩文件传送到远程服务器进行备份
43 net use \\%remoteServerPath% %remotePassword%/user:%remoteUserName%
44 xcopy /y "%backWorkPath%.rar" \\%remoteServerPath%\%remoteTargetPath%
45
46 rem 在远程服务器保留最新文件,份数按照设置进行保留
47 for /f "skip=%backupNumber% delims=" %%i in (‘dir /s /b /o-d \\%remoteServerPath%\%remoteTargetPath%\*.rar‘) do  del /f /q "%%i"
48
49 rem 删除工作目录和压缩文件
50 cd/
51 rmdir /s /q %backWorkPath%
52 del /f /q "%backWorkPath%.rar"
时间: 2024-10-20 04:31:38

使用命令行备份指定文件夹并保留最新N份的相关文章

time machine不备份指定文件夹

osx中常常会使用timemachine来备份一些文件,timemachine能够使某个文件夹恢复到之前某个时刻的状态,很的方便.但是备份须要空间,特别是有些我们并不想备份一些无关紧要的文件,比方电影,我们能够通过一下设置来进行忽略制定文件夹. Setting(设置)–Time Machine–Options(选项),之后加入对应文件夹就可以,例如以下图所看到的: 这样在备份的时候就会自己主动跳过指定的文件夹了. 很多其它文章请前往小胖轩.

【Android测试】【随笔】在手机里用命令行创建中文文件夹

不知道为啥当时自己写了一段在手机里用命令行创建文件的代码,后来由于需求,新建的文件夹需要用中文表示,因为直观,然后就发现出现诡异的乱码. 尝试了各种的编码格式,最后终于成功了,上图就是各种编码格式出的岔子,第一个为正确的. 好了不多说了,上源码吧 1 public void ShellONECommand(String cmd) 2 { 3 ((MainActivity)mainContext).ThreadUpdateLogToUI( "RunShell: " + cmd, Comm

Ubuntu下SVN命令行递归加入文件夹文件(免去一个一个的加入 --force)

因为在Linux下一直没有找到好的svn工具(类似于TortiseSVN的).当然eSVN这些也不错,但就是使用上认为还不是很习惯.终于还是选择了svn原始的命令行工具来进行版本号控制操作. 命令行的有些指令使用起来还是比較方便的.如svn checkout.svn commit这些命令基本上使不使用图形界面关系也不是非常大.唯一比較麻烦的命令的就是svn add,由于新添加的文件会分步在不同的文件夹中,有些文件夹中的文件已经存在于受控的svn资料夹,而有些文件所在的文件夹都是新增的.简单的输入

window cmd 命令行下创建文件夹和文件

新建文件夹命令: makedir 文件名 新建文件命令: type null> 文件名.文件类型 链接 原文地址:https://www.cnblogs.com/zhourongcode/p/8534802.html

win7系统cmd命令切换到指定文件夹目录

win7 系统下的cmd命令,直接cd命令切换盘符和以往有些不同,现在默认只能在当前盘符中改变目录,如果要改变盘符则需要多加一个/d命令.如下图所示:(对cd命令的帮助 大家可借助help cd命令进行查看) Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation.保留所有权利. C:\Users\Administrator>cd d:     D:\ C:\Users\Administrator>cd /d G:

c#调用 WinRAR.exe以命令行形式实现文件、文件夹的解压缩

在实际项目应用中会偶尔使用文件的压缩上传以及服务器端的加压处理,故写此文记录以备不时之需. 1.自己编写的ZipHelper类. 1 public static class ZipHelper 2 { 3 private static string pathExe = AppDomain.CurrentDomain.BaseDirectory + @"Resource\WinRAR.exe"; 4 /// <summary> 5 /// 使用Gzip方法压缩文件 6 ///

python 脚本(获取指定文件夹、指定文件格式、的代码行数、注释行数)

1.代码的运行结果: 获取 指定文件夹下.指定文件格式 文件的: 总代码行数.总注释行数(需指定注释格式).总空行数: 1 #coding: utf-8 2 import os, re 3 4 # 代码所在目录 5 FILE_PATH = './' 6 7 def analyze_code(codefilesource): 8 ''' 9 打开一个py文件,统计其中的代码行数,包括空行和注释 10 返回含该文件总行数,注释行数,空行数的列表 11 ''' 12 total_line = 0 13

使用yo命令,无法安装项目到指定文件夹

出现使用命令yo安装项目时,如果无法安装到指定文件夹,很可能是存在.yo-rc.json. Yeoman将  .yo-rc.json 所在的目录作为工程的根目录,之后Yeoman将当前文件目录跳转到根目录下运行请求的生成器,所以需要删除它. 注意:很多情况下,该文件是隐藏的,需要先系统设置显示隐藏文件,再将其删除就可以了. mac上可以 cd到根目录 运行 ls -l -a会找到该文件,再执行rm .yo-rc.json就OK了.

使用JFileChooser实现在指定文件夹下批量添加根据“数字型样式”或“非数字型样式”命令的文件夹

2018-11-05 20:57:00开始写 Folder.java类 1 import javax.swing.JFrame; 2 import javax.swing.JPanel; 3 import javax.swing.border.EmptyBorder; 4 import javax.swing.JLabel; 5 import javax.swing.JOptionPane; 6 7 import java.awt.Font; 8 import javax.swing.JText