使用批处理脚本愉快的清理缓存
2017-06-04 02:08
330 查看
站点缓存着实头痛,那么~重启吧
网站做了站点缓存,测试的时候修改数据后需要重启站点来清楚缓存
如何无需登陆服务器又不用改代码就可以清理换网站上的缓存呢?
用重启iis怎么样~
能重启IIS,自然也能干其他的
实现步骤
连接到远程主机在远程主机一个创建一个包含iisreset命令(+移除计划任务)的脚本
给远程主机添加一项过期的计划任务
立即执行计划任务
完整批处理脚本- 重启iis.bat
@echo off REM 远程地址 set ycip=192.168.1.123 REM 服务器登陆名 set ycname=Administrator REM 服务器登陆密码 set ycpwd=123456 REM 计划任务名称 set planName=自动重启IIS REM ipc名称 set ipcName=admin REM 执行脚本地址 \\%ycip%\%ipcName%$\ 对应C:\Windows set execbat=\\%ycip%\%ipcName%$\Temp\execiisresest.bat REM 执行路径 set taskPath=C:\Windows\Temp\execiisresest.bat echo 建立远程连接 net use \\%ycip%\%ipcName%$ "%ycpwd%" /user:%ycname% echo 写入脚本到远程脚本 REM ....写日志 未写入可能是权限问题 echo echo %time%执行任务^>^>C:^\Windows^\Temp^\iisreset_log.txt>%execbat% REM ....重启IIS echo iisreset>>%execbat% REM ....删除计划任务 echo yes| 始终确认 echo echo yes^| SCHTASKS /Delete /TN "%planName%" /F>>%execbat% REM 任务时间 设置一个过期时间,但是立即执行 set tasktime="00:00" echo 在远程主机创建计划任务 SCHTASKS /Create /S %ycip% /U %ycip%\%ycname% /P "%ycpwd%" /SC ONCE /ST %tasktime% /TN %planName% /TR %taskPath% /RU %ycname% /F echo 立即执行定义的计划任务 SCHTASKS /Run /S %ycip% /U %ycip%\%ycname% /P "%ycpwd%" /I /TN "%planName%" REM 删除IPC连接 net use \\%ycip%\%ipcName%$ /del pause
---------------手动分割线---------------
使用上面的方法若无权限问题可无碍运行,然在某些做了安全设置的情况下貌似有点走不通,故有了下面的版本
第二次修改
@echo off REM 远程地址 set ycip=192.169.1.123 REM 服务器登陆名 set ycname=Administrator REM 服务器登陆密码 set ycpwd=123456 REM 计划任务名称 set planName=IIS_Reset REM 远程计算机名 set ycpcname=mypc REM 执行脚本地址 set execbat=\\%ycip%\D$\\execiisresest.bat set taskPath=D:\execiisresest.bat echo 建立远程连接 net use \\%ycip% "%ycpwd%" /user:%ycpcname%\%ycname% echo 写入脚本到远程脚本 REM ....写日志 未写入可能是权限问题 echo echo %time%执行任务^>^>%taskPath%.txt>%execbat% REM ....重启IIS echo iisreset>>%execbat% REM ....删除计划任务 echo yes| 始终确认 echo echo yes^| SCHTASKS /Delete /TN "%planName%" /F>>%execbat% REM 任务时间延迟 set tasktime="00:00" echo 在远程主机创建计划任务 SCHTASKS /Create /S %ycip% /U %ycpcname%\%ycname% /P "%ycpwd%" /SC ONCE /ST %tasktime% /TN %planName% /TR %taskPath% /RU %ycname% /F echo 立即执行定义的计划任务 SCHTASKS /Run /S %ycip% /U %ycpcname%\%ycname% /P "%ycpwd%" /I /TN "%planName%" REM 删除IPC连接 net use \\%ycip% /del pause
关于脚本中的几个关键点
批处理脚本中如何定义变量?定义:
set 变量名=值
使用:
%变量名%
计算:
set /a v1=1+1-->v1==2
set v2=1+1-->v2=="1+1"
如何写入文件?
写入:
echo 我是文本>文件名.后缀名
追加写入:
echo 我是文本>>文件名.后缀名
追加一个换行符:
echo. >>文件名.后缀名
自动确认yes:
echo yes|
如何写入文件到建立远程连接
首先建立远程连接:
net use \\192.168.1.123\admin$ "密码" /user:登陆名路径对应C:\Windows
写入文件:
echo 文本>\\192.168.1.123\admin$\文件路径
在远程主机创建计划任务并执行
创建计划任务:
SCHTASKS /Create /S %主机地址% /U %主机地址%\%主机登陆名% /P "%密码%" /SC ONCE /ST %计划任务名% /TN %计划任务名% /TR %脚本或程序地址% /RU %主机登录名亦可%
立即执行:
SCHTASKS /Run /S %主机地址% /U %主机地址%\%主机登陆名% /P "%密码%" /I /TN "%计划任务名%"
删除任务:
SCHTASKS /Run /S %主机地址% /U %主机地址%\%主机登陆名% /P "%密码%" /I /TN "%计划任务名%"
如何将 |,> 等特殊字符写入文本
示例:
echo ^|>xxx.txt^为转义字符,这样就能特殊字符输出或写入文件了
5种if语句的基本语法:
判断两个字符串是否相等,
if "字符串1"=="字符串2"(command语句) else ()
判断两个数值是否相等,
if 数值1 equ 数值2 command语句
判断判断驱动器,文件或文件夹是否存在
if exist filename command语句
判断变量是否已经定义,
if defined 变量 command语句
判断上个命令的返回值,
if errorlevel 数值 command语句
计划任务是会在C:\Windows\system32目录下执行的,所以若脚本中未重定向路径,则日志会保存到system32目录
参考文章
利用schtasks远程执行命令 https://sanwen.net/a/rsjveqo.htmlDOS批处理中的特殊符号 http://www.2cto.com/os/201309/241025.html
DOS批处理添加任务计划 http://www.echojb.com/computer/2017/04/26/363341.html
相关文章推荐
- linux指定定时脚本清理缓存车看内存使用情况
- 使用 FTP 批处理脚本(MS)
- 使用selenium-on-rails的一些讨论 2]清理缓存
- 使用sqlcmd在批处理脚本中执行SQL
- lync清理缓存批处理
- 清理内存缓存脚本
- 使用 FTP 批处理脚本
- Win8如何不借助第三方软件使用批处理删除缓存文件
- 批处理自动配置IP(静态IP)和批处理自动获取IP(动态IP):有线、无线均可使用此脚本
- 使用批处理脚本将log分类
- 使用批处理脚本(BAT)调用FFMPEG批量编码视频
- 使用脚本和批处理清除电脑中的痕迹的代码第1/2页
- 使用脚本建立批处理空间分析模型(原创)
- MTK工作中可以使用的批处理脚本
- sql server和sybase中通用的使用BCP倒出当前库中所有表的数据批处理脚本
- 关于使用脚本请求服务器端资源无法缓存的问题
- Windows脚本 - 批处理中能够使用的系统变量
- 清理多个varnish服务器缓存的脚本
- 【开源自动化测试疑难FAQ】【框架】使用批处理进行过期的测试结果和空目录清理
- 使用批处理脚本(BAT)调用FFMPEG批量编码视频