批处理

7月1日 · 2015年

Windows下bat批处理脚本使用telnet批量检测远程端口小记

20
多年没写过批处理了,来新公司的第一个 case 却是需要写一个 bat 脚本,批量更新采集 agent 的配置文件,其中就涉及到远程 IP 的端口检测。 本以为会和 Linux 一样可以简单判断: echo q|telnet -e 'q' $ip $port && echo "$ip:port 通"||echo "$ip:port 不通" 结果发现 Windows 下面 telnet 退出并没有执行结果的返回值: 一、借助工具 于是我优先开启懒人法则,找其他替代工具。果然,在 Windows 老娘家找到了: Portqry:https://support.microsoft.com/en-us/kb/310099/zh-cn 确实可以使用,不过检测速度不敢恭维,通与不通都很慢!鉴于手头没有更好的解决办法,就先试试看,贴一下我写的 Portqry…
3月29日 · 2015年

SendCloud邮件队列状态和已使用额度的Python监控脚本

2
公司最近用上了 SendCloud 的邮件代发服务,于是就有了各种监控需求。比如每天发信额度是不是要超标了或是邮件是否堵塞了等等。最近经常接触 python,所以这次也一样,继续学习使用 python 来完成各种脚本需求。 SendCloud 提供了很多对外查询的 API,只要 Get 或 Post 传递用户名和 KEY 即可获得想要的各种数据,比如最简单的【已使用额度】就可以在用户信息 json 接口查询。 文档地址:http://sendcloud.sohu.com/doc/email/user_info/ 调用形式如下: http://sendcloud.sohu.com/webapi/userinfo.get.json?api_user=***&api_key=*** 返回示例如下: { "message": "success", "userinfo": { "quota": 5700, "usedQuota": 0, "reputation": 65.768845, "balance": 0, "availableBalance": -2.9,…
3月24日 · 2015年

bat/cmd批处理连接SqlServer数据库查询脚本

9
难得今天晚上 9 点前赶回家,而且最近草稿箱也压了不少“湿货”,就挑一篇发出来好了!不过在发文章之前先吐槽一下那个从昨天攻击张戈博客到现在还在继续的无聊蛋疼之人! 本来就算开启了云加速全缓存也是扛不住的,因为静态中混着动态请求,比如浏览计数。还好灵机一动,对这些动态做了点小手脚,现在基本毫无压力了!粗略分析一下这个攻击博客的小人,无外乎是 2 种人: ①、最近张戈博客流量大涨,估计遭人妒忌或者是挡人财路; ②、来张戈博客换友链被拒或被忽略的人,怀恨在心。 对于①:俗话说无人妒忌是庸才,那么无人妒忌的网站也不能算是优秀的网站。其实,你只闻到我的香水,却没看到我的汗水,你只看到了我的排名,却没看到我的用心。 建站一年多,或多或少对 SEO 有一些自己的见解。结合张戈博客的发展历程,我认为真正以用户体验、设身处地为用户着想的内容才是最好的“农家肥”,而不是那些短期就能看到成效的“化肥”!写文章时我会时刻想着用户是否看得懂,怎样写才能让用户更容易?总之,文章如果只是贴上你的测试过程,那这博客就真的只是印象笔记了! 所以,如果你是眼红而攻击我,那就继续吧,不把张戈博客打死你就是孬种。 对于②:怎么说呢,前面那篇文章已经说了张戈博客的友链要求,但还是有不少朋友热心的请求交换友链。可是你的网站确实还不够看,达不到我的要求,你要我怎么弄?如果都同意,那我首页不就变成导航了吗?如果是因为拒绝友链而攻击我,那么请继续,但千万别让我知道了是哪个网站,否则你懂的。。。 好了,废话说的够多的了,下面说正事。 前面也说了,我现在的新公司大部分服务器是 Windows Server 环境,前人都是用 Python 写的监控脚本,最近正好遇到了一个添加 Zabbix 监控项目的需求,我就琢磨着用我刚工作时拿手的 bat 批处理来完成这个项目。 不出意外,批处理果然可以胜任,不过要借助 sqlserver 命令行工具的帮助,代码如下: @echo oFF title Zabbix 监控之数据库查询 bat 脚本 ::名称:Zabbix…
12月30日 · 2013年

Windows下获取网络连线实际名称,加强IP类设置脚本的兼容性

1
在之前的工作中,由于分区域管理,TCP 设置有差异,所以编写过很多关于 IP 切换的脚本,作为大批量电脑维护的脚本,最重要的就是兼容性,可不能就测试的那几台电脑通过了,然后发布给同事使用的时候,出现各种状况! 其中比较难解决的问题就是获取网络连线的实际名称,大部分人使用的 IP 设置脚本都是将【本地连接】写死在代码中,可实际上并不是所有电脑都叫本地连接;比如有的用户电脑可能升级了网卡驱动,或者更换了网卡,导致网络连线的名称变成“本地连接 2”,又比如有无聊好事者(某产线的作业员电脑),将网络连线的名称各种 DIY,我就见过一个修改成”操蛋的青春”,瞬间无语! 好了,废话不多说,直接上菜! 对于网络连线的实际名称,可能出现的情况有: 1.网卡更换/驱动升级导致名称变更,比如本地连接 2 2.系统语系不同导致网络连线名称也不同,比如简体叫【本地连线】,而繁体却叫【區域連線】 3.系统版本不同,导致命令行显示也不同,比如 ipconfig/all,简体 XP 中显示为【Ethernet adapter 本地连接:】,而简体 WIN7 显示却是【以太网适配器 本地连接:】 4.其他不可预料的问题     那如果要编写一个通用的 IP 修改脚本,必须就得考虑到以上 1-3 条的问题,才能提高兼容性,接近版本/简繁语系通吃!(英文版暂未考虑) (PS:以下代码只为说明获取名称,其他一切从简展示): 一、先给出一个 XP 下简繁体通用的获取连线名称的代码 @echo…
12月27日 · 2013年

Tomcat重启脚本For Windows

3
Tomcat 重启脚本,送给有需要的 JSP 环境运维同行们~ 运行环境:XP/windows 2003 测试通过,其他环境由于手头上条件限制未测试; 脚本功能:在常规调用 tomcat 自带的关闭/重启脚本中加入假死判断,若出现假死则予以强行 Kill 掉相关 JAVA 进程; 脚本特点:可在 tomcat/Jboss/apache 混合平台使用,针对性的只重启 tomcat 相关进程; 注意事项:就是注意 tomcat 环境变量是否正确即可。 @echo off title Tomcat 重啟脚本 call "%tomcat_home%\bin\shutdown.bat" ping -n 6 127.1 >nul wmic process…
12月21日 · 2013年

桌面白屏(Active故障)修复批处理

0
一年前我在做用户系统维护服务工作时发现 AD 域环境下,AD 用户桌面经常会出现壁纸无法显示,ActiveDesktop 桌面损坏之类的故障,当时从前人心得里学到的方法就是登入管理员,然后删除用户配置目录(%userprofile%),然后重新登入之后用户桌面就能正常了 如此确实能修复这白屏故障桌面,但是用户的所有事设置均被重置,加大了维护工作量,这不是做维护愿意看到的,于是左查右查,我终于找到了症结所在! 原来,加入 AD 后,域用户的桌面都是网域服务器来配置的,而 Active 桌面就是从网域获取的一个叫做 Desktop.htt 的配置文件来控制的,每次用户环境的刷新,都会从 AD 服务器重新获取新的配置文件,当出现故障的时候(没深究,大概就是网域通讯之类的故障),Desktop.htt 文件内容将会改变,都是无法连接之类的描述,从而造成了 Active 桌面故障,一片惨白! 于是,最开始就有了手动解决的办法,从正常用户环境得到正常的文件,将里面的分辨率修改成目标电脑分辨率并拷贝这个文件去覆盖损坏的 desktop.htt,然后立刻设置为只读属性(否则一刷新就被损坏文件重新覆盖,从网域抓取失败时,生成的错误文件)。 问题到这里,至少有了解决办法,但是还是挺麻烦,还是不是作为超级懒人的我所要的答案,于是我就动手写个批处理好了,于是就有了下面这个代码: @echo off color 2f mode con cols=39 lines=8 title ※白屏修复工具※ Ver 2.2 By Mars.Ge rem…