zoukankan      html  css  js  c++  java
  • 记一次 IIS 站点配置文件备份和还原,物理路径文件批量备份

    前言

    上一篇文章实现了数据库的批量备份和还原,当然部署在服务器中的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. 省去了大把时间来刷博客

    文章来源:https://www.cnblogs.com/jierou/p/15579911.html(如有侵权,请联系本人删除)

  • 相关阅读:
    第10件事 向优秀产品学习的学问
    第9件事 产品定位要解决的6个问题
    第8件事 3步打造产品的独特气质
    Git 从服务器取得最新代码覆盖本地
    Git:代码冲突常见解决方法
    oracle线程数更改
    从Git仓库中恢复已删除的分支、文件或丢失的commit
    Sublime 3114 + 转换GBK方法
    教你快速写出多线程Junit单元测试用例
    Spring中加载xml配置文件的六种方式
  • 原文地址:https://www.cnblogs.com/robinli/p/15580140.html
Copyright © 2011-2022 走看看