windows虚拟机批量安装程序

2013年11月01日 11:28

需要在几百台虚拟机上部署开发好的监测软件,运维人员表示手工操作要崩溃的。我想应该有一种方法可以实现自动安装,调研一下,要做到自动安装,需要以下几个条件。
1. psTools工具包,可以远程执行命令
2. 安装包需要支持静默安装
3. 需要通过命令行下载安装包
 
psexec.exe可以远程执行命令,提供远程windows虚拟机的ip和具有管理员权限的用户名和密码,就可以远程执行本地命令。
 
psexec.exe \\ip_addr -u username -p password  -c -w C:\  runupdate.bat
 
使用nsis制作安装包,使用/S参数时,nsis安装包会静默安装,在脚本中安装完成的地方加入
Exec “第一个启动文件”
在静默安装完成后,就立即启动。
 
使用http下载文件,将安装包放置于linux主机的web目录下,使用网上分享的bat支持http下载脚本即可,需要注意windows不区分大小写,文件名全部用小写防止出错。
 
echo=1/*>nul&@cls
@echo off

call :http "http://xxx.com/download/installer.exe" C:\installer.exe



c:
C:\installer.exe /S

if %ERRORLEVEL% NEQ 0 goto failed
echo "installer updated DONE!"

cd ..
echo %computername% %date% %time% >> ComputerList.txt
echo "Updating of installer succeeded. "
goto end

:faile
echo $%computername% %date% %time% >> ComputerList.txt
echo "Updating of installer failed. "

:end
c:

pause
goto :eof

::-----------------下面是函数定义区域-----------------
:http
echo Source:      "%~1"
echo Destination: "%~f2"
echo Start downloading. . .
cscript -nologo -e:jscript "%~f0" "%~1" "%~2"
echo OK!
goto :eof

*/
var iLocal,iRemote,xPost,sGet;
iLocal =WScript.Arguments(1); 
iRemote = WScript.Arguments(0); 
iLocal=iLocal.toLowerCase();
iRemote=iRemote.toLowerCase();
xPost = new ActiveXObject("Microsoft"+String.fromCharCode(0x2e)+"XMLHTTP");
xPost.Open("GET",iRemote,0);
xPost.Send();
sGet = new ActiveXObject("ADODB"+String.fromCharCode(0x2e)+"Stream");
sGet.Mode = 3;
sGet.Type = 1; 
sGet.Open(); 
sGet.Write(xPost.responseBody);
sGet.SaveToFile(iLocal,2); 
 
本文参考:

http://blog.csdn.net/cneducation/article/details/3997166

下载脚本参考:

http://www.newlifex.com/showtopic-149.aspx

ajax的jsonp使用gzip压缩

2013年9月29日 11:04

管理界面需要加载所有用户信息,jsonp返回数据量达到12M,加载体验很差。ajax支持对返回的json,jsonp的gzip压缩。需要前端和后端一起配合修改。

.ajax({
  url:url,
  dataType:'jsonp',
  headers : {'Accept-Encoding' : 'gzip'},
  type: 'get'
})

后端只要修改web服务器配置就可以,比如我是nginx+sinatra,只需要修改nginx配置文件

    gzip  on;
    gzip_min_length  102480;
    gzip_buffers     4 8k;
    gzip_types       text/plain application/x-javascript text/css application/xml application/json;

MQTT简介

2013年9月24日 21:16

mqtt是IBM开发的一个轻量级发布/订阅消息协议。可用于受限环境,有多种语言的实现。协议的特点有:

  • 使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。
  • 对负载内容屏蔽的消息传输。 使用 TCP/IP 提供网络连接。
  • 有三种消息发布服务质量:
    1. 至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
    2. 至少一次”,确保消息到达,但消息重复可能会发生。
    3. 只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。
  • 使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制。
  •  

实际使用中的一些须知:

QoS

MQTT 的QoS决定broker如何确保消息达到客户端. QoS是双向的,客户端可以以任意QoS发布消息,以任意QoS订阅主题. 例如,客户端A以QoS 2发布消息,客户端B以QoS 0订阅,那么消息将以QoS 0送达B,如果另一个客户端C,以QoS 2订阅这个主题,那么消息将以QoS 2送达客户端C。 如果客户端以QoS 2订阅,消息以QoS 0发布,那么消息将以QoS 0送达客户端。

 

技术blog

2013年9月11日 09:46

技术博客,记录互联网学习,关键字:debian,centos,nginx,apache,reids,memcache,git,ruby,sinatra,rails,mqtt