前言

上一篇文章实现了数据库的批量备份和还原,当然部署在服务器中的IIS站点备份也是一个十分繁琐的事,三四个数量不多的还好,像有一些服务器用了许久,承载几十个站点甚至更多,一个一个备份,再一个一个还原也是有苦说不出。下面我用dos命令写了一个批量备份的脚本供大家参考。

开始

    1. 使用前准备和注意事项
    2. 备份IIS站点配置信息,和IIS物理文件路径文件
    3. 还原IIS站点信息
    4. 总结

一、使用前准备和注意事项

  1. 执行此bat文件时需要用到电脑中的压缩软件程序,需要知道安装路径,并且需要压缩dos命令也需要知道,我这里用的时7-zip。 如图本人电脑:

2.需要确认服务器中IIS 中的物理路径中的文件没有重名的(当然很少出现)

二、备份IIS站点配置信息,和IIS物理文件路径文件

使用前记得替换前面三个文件路径和最后面那个循环压缩文件的命令,直接贴代码:

@echo off
rem --存放IIS站点的配置文件信息
set backUpFile=C:\myfile\IISfile\Setting
rem --存放IIS站点物理文件压缩
set compressFile=C:\myfile\IISfile\compress
rem --电脑中的压缩文件路径
set compressionSoftwareFile=C:\"Program Files"\7-Zip\7z.exe :SiteInfo
echo 正在备份IIS站点配置信息·····
%windir%\system32\inetsrv\AppCmd.exe LIST APPPOOL /config /XML > %backUpFile%\poolappcmdexport.xml
%windir%\system32\inetsrv\AppCmd.exe LIST SITE /config /XML > %backUpFile%\iisappcmdexport.xml
echo IIS站点配置信息备份完成····· :GetphysicalPathInfo
echo 正在读取站点文件路径信息·····
findstr physicalPath %backUpFile%\iisappcmdexport.xml > %backUpFile%\physicalPathInfo.txt :GetphysicalPath
@echo off&setlocal enabledelayedexpansion
set "word1=""
set "word2=""
(for /f "delims=" %%a in ('findstr "%word1%.*%word2%" "%backUpFile%\physicalPathInfo.txt"') do (
set "str=#%%a"
set "str=!str:%word1%=ж!"
set "str=!str:%word2%=ж!"
for /f "tokens=4 delims=ж" %%b in ("a!str!") do echo;%word1%%%b%word2%
))>"%backUpFile%\physicalPath.txt"
echo "physicalPath.txt生成成功,请按任意键开始备份压缩"
pause :Compress
@echo off
echo 开始压缩
rem --获取文本中文件路径
for /f %%i in ('type %backUpFile%\physicalPath.txt' ) do ( for %%a in (%%i) do (
rem --循环压缩文件
%compressionSoftwareFile% a -r -mx3 -tzip %compressFile%\%%~ni %%i
echo %%~ni 压缩完成
)
)
echo 备份完成!
pause

执行效果图:

三、还原IIS站点信息

简单点 可以直接在cmd命令行中执行,不过也有可能会遇到问题,可能遇到站点Id冲突,或是应用程序池重复,因为你还原的时候大都不可能是在一台新的服务器上操作。先贴代码:

rem --应用程序池全部还原(poolappcmdexport.xml 上文有备份的文件,上文改了如有修改,这里记得改)
%windir%\system32\inetsrv\AppCmd.exe ADD APPPOOL /IN < poolappcmdexport.xml rem --网站配置全部还原(iisappcmdexport.xml 上文有备份的文件,上文改了如有修改,这里记得改)
%windir%\system32\inetsrv\AppCmd.exe ADD SITE /IN < iisappcmdexport.xml

一般情况下这个需要删除,每个服务器初始化都会有这个站点。如果提示站点重复,可能还需要修改iisappcmdexport.xml文件中对应的SITE.ID,id。还原之后,把之前压缩的文件解压出来放到对应文件。

四、总结

    1. 学习了dos命令
    2. 省去了大把时间来刷博客

记一次 IIS 站点配置文件备份和还原,物理路径文件批量备份的更多相关文章

  1. 记一次IIS站点出错的解决过程

    记一次IIS站点出错的解决过程 以前一直都是人家用着系统出问题了反馈过来这边改,没想到这回就发生在自己使用的过程中 问题经过 我正在执行一个操作,保存了没有返回提示,打开浏览器控制台查看网络,请求返回 ...

  2. Vue 默认IIS站点配置

    // Vue 默认IIS站点配置 module.exports = { baseUrl: '/SG/',  }

  3. IIS关于“ 配置错误 不能在此路径中使用此配置节”的解决办法

    IIS关于“ 配置错误 不能在此路径中使用此配置节”的解决办法 原文链接:http://www.cnblogs.com/200325074/p/3679316.html 今天刚安装好IIS8.5, 我 ...

  4. IIS如何配置可以下载APK、IPA文件

    解决步骤: 1).打开IIS服务管理器,找到服务器,右键-属性,打开IIS服务属性: 2.单击MIME类型下的“MIME类型”按钮,打开MIME类型设置窗口: 3).单击“新建”,建立新的MIME类型 ...

  5. C# iis 错误配置信息( CS0016: 未能写入输出文件 )

    IIS发布时,编译器错误消息: CS0016: 未能写入输出文件 "c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.N ...

  6. 记一次MVC4站点在IIS上部署的诡异问题

    最近朋友的公司遇到一个站点部署问题, 朋友从事服务器维护多年,说也是花了十多天仍为解决. 经多次尝试未果,仍报错如下: 我询问了相关情况,确认了该网站是VS2013开发的,版本为,NET Framew ...

  7. 在IIS站点中Adomd.net集成认证账号问题

    最近在做一个Asp.net项目的时候 ,在C#代码里面用到了Adomd.net去连接SSAS服务器做MDX查询,开发完成后将Asp.net代码部署到IIS后发现Adomd.net老是连接不到SSAS服 ...

  8. iis 站点中文乱码 解决方案

    问题描述:iis乱码问题 1:在vs里开发没问题,发布后用发布文件替换iis文件没问题,但是如果用fis3发布后导致iis站点访问时出现部分中文乱码 原理:文件编码格式不统一 解决方案: 四个步骤解决 ...

  9. iis的web站点配置

    1.下载好pageadmin网站系统,我下载的放在F:\web\site目录下(每个电脑或每个用户放置目录都不一样,你也可以放C:\myweb,或D:\xxx等等,只要下面对应目录设置一样即可),我们 ...

随机推荐

  1. 使用python -m pip install 和 pip install 安装包有什么区别?

    如果去看源码的话,你会发现 pip 作为执行文件的入口点是 pip._internal.main. 另一方面,pip 作为模块运行时入口是 _main.py,而该模块也只是调用 pip.interna ...

  2. 题解 51nod 1597 有限背包计数问题

    题目传送门 题目大意 给出 \(n\),第 \(i\) 个数有 \(i\) 个,问凑出 \(n\) 的方案数. \(n\le 10^5\) 思路 呜呜呜,傻掉了... 首先想到根号分治,分别考虑 \( ...

  3. JavaScript04

    分离绑定事件 使用分离方式绑定元素事件可以使用页面元素与JavaScript代码完全分离,有利于代码分工和维护,是目前开发主流,分为两步: 1.获取需要绑定事件的元素 语法:根据id属性值取元素节点 ...

  4. 编程题:X星人的金币

    X星人的金币 时问限制:3000MS 内存限制:589824KB 题目描述: X是人在一艘海底沉船上发现了很多很多很多金币.可爱的X星人决定用这些金币来玩一个填格子的游戏.其规则如下:第1个格子放2枚 ...

  5. ThreadLocal部分源码分析

    结构演进 早起JDK版本中,ThreadLocal内部结构是一个Map,线程为key,线程在"线程本地变量"中绑定的值为Value.每一个ThreadLocal实例拥有一个Map实 ...

  6. Java:抽象类和接口小记

    Java:抽象类和接口小记 对 Java 中的 抽象类和接口,做一个微不足道的小小小小记 抽象类:使用 abstract 修饰,子类用 extends 继承: 接口:使用 interface 修饰,采 ...

  7. Alpha阶段初始任务分配

    项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任健) 这个作业的要求在哪里 团队项目-计划-Alpha阶段说明书 一.Alpha阶段总体规划 进行服务器相关部署 进行开发相关技术学习 ...

  8. BUAA软件工程个人博客作业

    软件工程个人博客作业 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业 我在这个课程的目标 团队完成好的软件,并对自己作出规划 这个作 ...

  9. spring social实现百度登录

    在早期我写过一篇spring social理解的文章,介绍了一些spring social的概念,但是没有提供一个例子.在这篇博客中,提供一个简单的spring social的例子,实现 百度登录,那 ...

  10. 利用DMA实现采样数据的直接搬运存储

    尝试了下STM32的ADC采样,并利用DMA实现采样数据的直接搬运存储,这样就不用CPU去参与操作了. 找了不少例子参考,ADC和DMA的设置了解了个大概,并直接利用开发板来做一些实验来验证相关的操作 ...