windows下常用的几个批处理脚本
1.windows下对比两个文件内容,有差异则执行一个任务:
适用场景:比如你的数据库备份结果的日志每天会形成一个文件,如下图,你可以通过此脚本检测到文件的变化,并执行发送告警邮件通知你数据库备份异常。
对比两个文件.bat
rem 检查Linux服务器上的异地备份情况并报警:yes.log为正常情况下的日志,如果新的日志和正常不符则报警。
rem 设置取当前的时间,格式:2018-02-06
set now=%Date:~,%-%Date:~,%-%Date:~,%
rem 当天的日志结果和标准日志对比,如一样则ok,如不同则触发邮件脚本“sendmillog.vbs”
fc /b %now%.log yes.log &&echo ok|| call sendmaillog.vbs
sendmaillog.vbs
'vbs发邮件 By 依梦琴瑶 '设置发信人邮箱地址
Sender = "xxxx.qq.com" '设置发信人邮箱密码
Sender_PassWord = "xxxx" '设置发信人邮箱SMTP服务器地址
Smtp = "smtp.xxx.net" '设置SMTP服务器端口
Port = '设置收信人邮箱地址
Receiver = "xxxx@qq.com" '设置附件文件路径。
'Attachment = "" '设置邮件主题
Subject = "数据备份异常" '设置正文文本路径。
Text = "数据备份异常,请查看日志." NameSpace = "http://schemas.microsoft.com/cdo/configuration/"
Set Email = CreateObject("CDO.Message")
Email.From = Sender
Email.To = Receiver
Email.Subject = Subject
Email.Textbody = Text
'Email.AddAttachment Attachment
With Email.Configuration.Fields
.Item(NameSpace&"sendusing") =
.Item(NameSpace&"smtpserver") = Smtp
.Item(NameSpace&"smtpserverport") = Port
.Item(NameSpace&"smtpauthenticate") =
.Item(NameSpace&"sendusername") = Sender
.Item(NameSpace&"sendpassword") = Sender_PassWord
.Item(NameSpace&"smtpconnectiontimeout") =
.Update
End With
Email.Send
Set Email=Nothing
内容较长请展开查看
2.查看文件是否生成,或文件中是否有字段,加报警
适用场景:查看每天的数据库备份文件是否生成,没有生成则报警;查看每天的备份日志文件中是否有备份成功的字段,没有则报警;
查找没有某后缀的文件则邮件报警.bat
@echo off
rem 设置取当前的时间,格式:2018-02-06
set now=%Date:~0,4%-%Date:~5,2%-%Date:~8,2%
if exist "d:\test\%now%.dmp" (echo ok ) else (call sendmaildb.vbs)
查找某文件没有某字符则邮件报警.bat
set now=%Date:~,%%Date:~,%%Date:~,% rem 检查windows服务器上的备份情况并报警:查看日志文件中有没有正常的结尾信息,如果没有则报警。 find /i "Export terminated successfully without warnings." D:\test\user%now%.log>nul
if %errorlevel% EQU (echo ok) else (call sendmaillog.vbs)
查找某文件有某字符则邮件报警.bat
@echo off
find /i "ORA-" D:\test\*.log>nul
if %errorlevel% EQU 0 (call sendmaillog.vbs) else (echo ok)
pause
3.删除过期的文件
适用场景:在磁盘容量有限的情况下,只保留最近一个周的备份数据,则需要我们每天自动删除七天以前的备份数据
rem 查找test下7天前的备份并删除
set now=%Date:~,%%Date:~,%%Date:~,%
rem forfiles /p "D:\test" /s /m *.* /d - /c "cmd /c del @path"
将脚本日志进行导出:
方法一:
@echo off
(
echo 开始
.......
echo 完成!!!
) >> d:/test/dbbak.log 2> d:/test/dbbak_error.log
方法2:
创建一个test.bat 内容为执行脚本和日志输出,如下
D:\script\ggappbak.cmd > d:/test/dbbak.log 2> d:/test/dbbak_error.log
到时候你执行test.bat就行
以上脚本需要配合win计划任务执行。
4.检测程序是否正常启动,未启动则尝试启动。
:
tasklist | findstr /i nginx.exe > nul >nul
if %ERRORLEVEL%== (start nginx) else (exit)
ping 127.1 -n >nul >nul
goto
5.备份脚本
依次执行:复制→压缩→ftp传输到异地→删除临时文件
启动脚本:startbackup.cmd
D:\script\ggappbak.cmd > D:\script\log.txt 2> D:\script\error.txt
备份脚本:
ggappbak.cmd
rem 获取当前服务器的IP地址,无需改动
for /f "tokens=2 delims=:" %%q in ('ipconfig^|find /i "ipv4"') do (set hostip=%%q )
set ipv4=%hostip:~1,-1% rem 获取当前系统日期,无需改动
set today=%date:~0,4%%date:~5,2%%date:~8,2% rem 创建备份存放目录,目录命名为当前系统日期
mkdir D:\IPIBAK\%today% rem 拷贝IPI目录下的所有文件到备份目录
xcopy /E /Y /H /K /R "D:\ipi" "D:\IPIBAK\%today%\" rem 调用WinRAR程序对备份好的文件目录进行压缩,压缩后的文件用IP地址命名
"D:\Program Files\WinRAR\WinRAR.exe" m -r -ep1 "D:\IPIBAK\%ipv4%_%today%.rar" "D:\IPIBAK\%today%\" set ftpfilename=autoftp.cfg rem ============== 创建FTP传输配置文件 ==============
rem 连接指定端口的ftp
echo open 192.168.10.2 21> "%ftpfilename%" rem FTP用户名
echo ggappbak>> "%ftpfilename%" rem FTP密码
echo password>> "%ftpfilename%" rem FTP常见配置项
echo prompt>> "%ftpfilename%"
echo binary>> "%ftpfilename%"
echo quote opts utf8 off>> "%ftpfilename%" rem 定义向远程FTP上传压缩好的备份文件
echo put D:\IPIBAK\%ipv4%_%today%.rar>> "%ftpfilename%"
echo bye>> "%ftpfilename%" rem ================================================= rem 执行ftp命令上传压缩好的备份文件,根据实际情况调整远程FTP服务器的IP地址
ftp -s:"%ftpfilename%" rem 清理本地产生的临时文件
rd /s /Q D:\IPIBAK\
del "%ftpfilename%"
windows下常用的几个批处理脚本的更多相关文章
- Windows下Oracle数据库自动备份批处理脚本
expdb命令版本 @echo off REM ########################################################### REM # Windows Se ...
- windows下自动删除过期文件的脚本
windows下自动删除过期文件的脚本 前言: 比如日志文件每天都产生,时间长了就会有很大的一堆垃圾.整理一下 定时删除文件的方法. 正文: Windows: 定时删除tomcat日志和缓存.可以保留 ...
- windows下常用快捷键
windows下常用快捷键: 显示桌面: win徽标+D 打开资源管理器: win徽标+E 打开任务管理器: Ctrl+Alt+delete 任务切换: Alt+Tab 应用程序中窗口之间的切换: C ...
- Windows下常用的100个CMD指令以及常见的操作
gpedit.msc—–组策略 2. sndrec32——-录音机 3. Nslookup——-IP地址侦测器 ,是一个 监测网络中 DNS 服务器是否能正确实现域名解析的命令行工具. 它在 Wind ...
- windows下常用cmd命令
CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本.文件系统版本)1. appwiz.cpl:程序和功能 2. calc:启动计算器 3. certmgr. ...
- [转]Windows 下常用盗版软件的替代免费软件列表
当您看完这篇文章,我相信您完全可以把您 Windows 系统里安装的盗版软件清理干净而不影响您的任何工作.如果您仍然希望并且喜欢.享受做一个盗版软件用户的话,那也没有办法,但是请您记住,非常非常重要的 ...
- windows下常用的一些shell命令
看的视频上都是linux系统的shell命令,和windows区别很多.所以整理了windows常用的一些shell命令. 注意:并不是每个都试验过,使用时还需自己验证下. 学system和os,su ...
- windows下常用的操作命令及dos命令
常用windows运行命令mstsc---远程桌面连接regedit.exe---打开注册表services.msc---打开服务管理器rsop.msc---组策略结果集taskmgr---任务管理器 ...
- Windows下常用软件工具的命令
Linux上主要操作是命令,懂一点linux知识的都知道,其实windows下边很多工具也是可以用命令来操作打开的,这样会提高效率,节省很多的时间.下边就记录一下常用的命令. 一.常用命令 1.远程桌 ...
随机推荐
- Cocos Creator 获取节点的方式
1.通过find方式获取//获取节点 var node=cc.find("Canvas/logo"); //获取精灵组件 var sprite=node.getComponent( ...
- Linux基础(二)centOS7密码重置
之前安装linux的时候,为了安全起见,起了一个非常特别的,长的密码.然后,就不记得了密码. 下面通过进入单用户模式,就行挽救. 1>重启系统,在系统菜单选择页按 [上下方向键],使界面停在该界 ...
- 46.HTML---18个学习 flexbox 的优质资源
大家都在谈论的“flexbox”是什么呢?它能帮我们解决什么问题呢?现在你可以在你的项目中使用“flexbox”吗?这些指南.教程.网站和工具会告诉你你需要知道的关于“flexbox”的知识. Lea ...
- Hibernate框架第一天
**框架和CRM项目的整体介绍** 1. 什么是CRM * CRM(Customer Relationship Management)客户关系管理,是利用相应的信息技术以及互联网技术来协调企业与顾客间 ...
- MySQL 查询表中某字段值重复的数据
MySQL中,查询表(dat_bill_2018_11)中字段(product_id)值重复的记录: ; 说明:先用GROUP BY 对 product_id 进行分组,同时使用COUNT(*)进行统 ...
- qt 提高图片加载速度
一,将图片在pc上解析,然后将解析文件放到qrc文件中,读取qrc文件. 1,将图片解析后的二进制文件保存,源码如下, 下载地址:https://files.cnblogs.com/files/sen ...
- Codeforce 296A - Yaroslav and Permutations
Yaroslav has an array that consists of n integers. In one second Yaroslav can swap two neighboring a ...
- [转载] 关于出现“使用 UNION、INTERSECT 或 EXCEPT 运算符合并的所有查询必须在其目标列表中有相同数目的表达式”错误的可能原因
1. 对于该问题确实存在UNION前后SELECT语句中的列数不同导致:2. 以下为个人遇到的一种可能:在项目开发中由于有张表是动态的,即有个基础表,其他的表按年月根据基础表来生成动态表,动态表结构和 ...
- <转>jmeter(六)元件的作用域与执行顺序
本博客转载自:http://www.cnblogs.com/imyalost/category/846346.html 个人感觉不错,对jmeter讲解非常详细,担心以后找不到了,所以转发出来,留着慢 ...
- LNMP的并发配置和资源分配
PHP程序性能如何?程序的并发可以达到多少?程序的瓶颈在哪儿?为了满足业务需求应该购买多少台服务器?负载均衡中php应用服务器需要多少台? LNMP中的N是nginx充当Web Server 内容的分 ...