专栏首页张戈的专栏bat/cmd批处理连接SqlServer数据库查询脚本

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

难得今天晚上 9 点前赶回家,而且最近草稿箱也压了不少“湿货”,就挑一篇发出来好了!不过在发文章之前先吐槽一下那个从昨天攻击张戈博客到现在还在继续的无聊蛋疼之人!

本来就算开启了云加速全缓存也是扛不住的,因为静态中混着动态请求,比如浏览计数。还好灵机一动,对这些动态做了点小手脚,现在基本毫无压力了!粗略分析一下这个攻击博客的小人,无外乎是 2 种人:

①、最近张戈博客流量大涨,估计遭人妒忌或者是挡人财路;

②、来张戈博客换友链被拒或被忽略的人,怀恨在心。

对于①:俗话说无人妒忌是庸才,那么无人妒忌的网站也不能算是优秀的网站。其实,你只闻到我的香水,却没看到我的汗水,你只看到了我的排名,却没看到我的用心。

建站一年多,或多或少对 SEO 有一些自己的见解。结合张戈博客的发展历程,我认为真正以用户体验、设身处地为用户着想的内容才是最好的“农家肥”,而不是那些短期就能看到成效的“化肥”!写文章时我会时刻想着用户是否看得懂,怎样写才能让用户更容易?总之,文章如果只是贴上你的测试过程,那这博客就真的只是印象笔记了!

所以,如果你是眼红而攻击我,那就继续吧,不把张戈博客打死你就是孬种。

对于②:怎么说呢,前面那篇文章已经说了张戈博客的友链要求,但还是有不少朋友热心的请求交换友链。可是你的网站确实还不够看,达不到我的要求,你要我怎么弄?如果都同意,那我首页不就变成导航了吗?如果是因为拒绝友链而攻击我,那么请继续,但千万别让我知道了是哪个网站,否则你懂的。。。

好了,废话说的够多的了,下面说正事。

前面也说了,我现在的新公司大部分服务器是 Windows Server 环境,前人都是用 Python 写的监控脚本,最近正好遇到了一个添加 Zabbix 监控项目的需求,我就琢磨着用我刚工作时拿手的 bat 批处理来完成这个项目。

不出意外,批处理果然可以胜任,不过要借助 sqlserver 命令行工具的帮助,代码如下:

@echo oFF
title Zabbix监控之数据库查询bat脚本
::名称:Zabbix监控脚本批处理版
::描述:通过osql命令行工具查询数据库,进行一些自定义监控
::支持:需要osql.exe和MSVCR71.DLL支持,可以放到脚本同级目录
::时间:2015-03-20
 
:: 进入脚本当前目录
cd "%~dp0"
 
::取得参数
set "Usg=%1"
 
::判断参数
if "%Usg%"=="" goto Example
 
::初始化连接参数
set host="10.172.10.80" 
set db="DBname"
set user="DBuser"
set pd="password"
 
::根据不同的参数执行不同的查询代码(自行调整)
if "%Usg2%"=="monitor1" (
        ::监控1
	set sql="sql语句1") else if "%Usg%"=="monitor2" (
	::监控2
	set sql="sql语句2" ) else if "%Usg%"=="monitor3" (
	::监控3
	set sql="sql语句3") else if "%Usg%"=="monitor4" (
	::监控4
	set sql="sql语句4"
)
::连接数据库并执行查询(此处的for是对查询到的结果做提取,所以需要按照实际情况自行搞定。。)
for /f "skip=2 delims= " %%i in ('osql.exe -S %host% -U %user% -P %pd% -d %db% -Q %sql%') do ( 
	set result=%%i
	goto :result
)
 
::直接不带参数执行将提示用法
:Example
echo Example:
echo=
echo %~nx0 Conditions
echo=
echo ------------------------------
echo Script will auto exit in 5s...
ping -n 5 127.1>nul
exit
 
::输出结果后自动退出
:result
echo %result%

使用方法:

①、验证执行:在 CMD 中执行【脚本.bat +  监控名】即可,比如:D:\>monitor1.bat  monitor1

②、关联 zabbix:zabbix 中怎么设置我就不赘述了,注意下 zabbix 配置文件 zabbix_command.conf 如下添加:

UserParameter=NewMonitor[*],cmd /k c:\zabbix\NewMonitor.bat monitor1

Ps:主要是注意,需要添加一个 cmd /k 前置,否则 zabbix 执行不了,也得不到数据。 

最后附几个 osql.exe 命令的实用参数及相关下载地址:

-U   login_id  
  用户登录   ID。登录   ID   区分大小写。  
   
-P   password  
  是用户指定的密码。如果未使用   -P   选项,osql   将提示输入密码。如果在命令提示符的末尾使用   -P   选项而不带密码,osql   使用默认密码   (NULL)。密码区分大小写。
 
-S   server_name[\instance_name]    
  指定要连接的 Microsoft® SQL Server™ 2000 实例。在该服务器上指定 server_name 以连接到 SQL Server 的默认实例。在该服务器上指定 server_name\instance_name 以连接到一个已命名的 SQL Server 2000 的实例。如果未指定服务器,osql 将连接到本地计算机上的 SQL Server 默认实例。从网络上的远程计算机执行 osql 时,此选项是必需的。 
 
-d   db_name  
  启动 osql 时发出一个 USE db_name 语句。
 
-Q   "query"  
  执行查询并立即退出 osql。将查询用双引号引起来,将查询中嵌入的任何内容用单引号引起来。
 
-q   "query"  
  启动 osql 时执行查询,但是在查询完成时不退出   osql。(注意查询语句不应包含   GO)。如果从批处理文件中发出查询,请使用 %variables 或环境 %variables%。
例如:   
  SET table = sysobjects  
  osql /q "Select * from %table%"

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SEO技巧:Shell脚本自动提交网站404死链到搜索引擎

    最近在折腾博客主题,通常来说大多数人认为换主题会影响 SEO,实际上只要你把工作都做到位了,是没有任何问题的。比如,换主题后你得仔细检查标题和描述等内容是否发生...

    张戈
  • Shell+Curl网站健康状态检查脚本,抓出中国博客联盟失联站点

    一开始搭建中国博客联盟,既有博友提醒我,做网址大全这类网站维护很麻烦,需要大量的精力去 Debug 一些已夭折的网站,更是拿松哥的博客大全举例。当然,我也是深以...

    张戈
  • CentOS 7.0.1406正式版发布,附更新记录及CentOS7 iso镜像文件下载地址

    上次张戈博客刚公布了RHEL7 的最新资讯及下载地址,并且在文章结尾也猜测 centos7 也会即将发布,于是一直持续关注着 Centos 7 的最新动态,前些...

    张戈
  • 学数据库你竟然不用用JAVA写代码,可惜你遇到了我! JAVA连接数据库(JDBC)的安装使用教程

    可以去官网下,如果用的我的Mysql版本的话,可以直接下我的,我的是.19下载地址 如果不是,给出官网下载地址 有小伙伴私信我说,不知道那个是Windows...

    风骨散人Chiam
  • Mysql - 一条sql语句是如何执行的

    每次查询都会缓存查询结果,相同语句再次查询时直接返回缓存结果,缓存结果会在修改表信息时自动失效。

    夹胡碰
  • Java工具集-数学(圆的计算公式)

    cwl_java
  • 【TPAMI2020】目标检测中的不平衡问题:综述论文,34页pdf

    本文介绍了一篇关于目标检测中不平衡的综述论文:Imbalance Problems in Object Detection: A Review (https:/...

    深度学习技术前沿公众号博主
  • 如何让Windows文件管理器滚动如macOS奶油般顺滑?

    鼠标中键滚轮每转动一格,windows文件管理器就会移动相应的行数,注意这里是行数,而不是屏幕的最小单位,像素!这意味着,如果你的鼠标中键滚轮滚动时有卡顿感,就...

    zhaoolee
  • Cortex-A8/A76

    关于Cortex-A8的微处理架构参考《ARM_Cortex-A8微处理器的架构和实现》

    闪电gogogo
  • 用reStructuredText来写博客(测试)

    它是一个类似于MarkDown的标记语言,具体可参考这里:http://zh.wikipedia.org/wiki/ReStructuredText, 手册在这...

    the5fire

扫码关注云+社区

领取腾讯云代金券