软件批量安装

2024-08-17

软件批量安装(共7篇)

软件批量安装 篇1

软件的安装与病毒的处理是高校计算机机房管理维护中的重要工作。在计算机机房新建时,每台计算机硬盘上的软件往往是通过克隆完成的,但是在使用过程中安装或更新某个应用软件时,往往需要管理员逐台安装。在当今计算机技术发展日新月异的时代,为了适应软件的升级、课程设置的变化、各种考试方式的改革等原因,机房计算机常常需要安装新的软件。即使是一个简单的应用程序,逐台机安装也是一件繁琐的事情。另外,为了保证软件不被随意删改并使系统免受病毒侵害,机房学生机一般都会安装还原卡或还原软件来保护系统盘与备份盘,只留一个开放盘供学生存放资料与作业,而这个开放盘也成了病毒的存放之地,往往只要一台机上染有病毒,就会很快地通过网络复制传播,使得整个机房无法正常使用,而管理员通常只能通过格式化开放盘来处理,学生的资料丢失、作业也无法保存,这给很多具有连续性的课程带来了影响。笔者通过多年的机房管理工作,总结出利用高校机房普遍使用的多媒体教学软件的文件传输和远程控制功能,配合自己编写简单的批处理文件实现机房软件批量安装和自动处理开放盘病毒的方法。

1 软件批量安装

江苏省大学生计算机等级考试系统是江苏高校统一使用的考试软件,该软件在Windows2000系统下安装方法如下:

在一台学生计算机上安装考试系统软件,并将该机C:Program File目录下的文件夹"cdjksxt"和桌面上的快捷方式"考试系统"拷贝到教师机上,通过苏亚星教学软件的文件传输功能,将"cdjksxt"文件夹传输到每一台学生机的C:Program File下,将快捷方式考试系统发送到每台学生机的桌面上。编写注册表文件cdjksxt.reg,内容如下:

在保证每台学生机桌面排列一致的前提下,将cdjksxt.reg文件传输到每一台学生机的桌面上,然后利用苏亚星的远程控制功能执行该文件,执行结束后删除文件,这样通过在教师机上的一次性操作便完成了所有学生机的软件安装。

2 开放盘病毒处理

病毒往往以.exe、.com、.scr、.bat、.cmd等可执行性文件的形式存在,很多病毒会不断生成.eml、.rar、.zip、.ini、.scr、.htt、.inf为后缀名的文件。而学生的作业很少会是这些类型,如果作业中有可执行的程序被删除,也可通过再次编译源文件生成,所以只要定期清除以上类型的文件,并在开放盘符根目录下创建无法删除的autorun.inf文件夹,使病毒无法创建autorun.inf文件,防止病毒利用自动播放来运行,便能清除、控制开放盘的病毒,保证机器的正常使用。编写批处理文件ivrusclear.bat,内容如下:

通过苏亚星的文件传输和远程控制功能将ivrusclear.bat文件传输到每台学生机的D盘根目录下,并在每台机上执行注册表文件ivrusclear.reg,就能实现在每次开机时,对开放盘进行病毒处理,并能使学生的资料与作业不丢失,保证教学正常进行。

3 总结

经过一段时间的工作实践,笔者认为使用以上方法,不仅提高了机房管理的工作效率,也减少了机房因病毒泛滥而瘫痪的情况,从而保证了机房的正常使用,提升了管理水平。

摘要:介绍了高校计算机机房维护中软件批量安装的方法及学生机开放盘病毒处理的方法。

关键词:软件批量安装,开放盘,病毒处理

用C++开发图片批量处理软件 篇2

一、需求分析

笔者从事国画教学工作,但也是一个编程发烧友,在长期从事画画的创作中,利用信息化手段,将创造作品保存到计算机里,通过网络可以和同行进行交流,也可以将自己的作品公布到网站上,为教学研究开创了一条创新之路。但在通过网络交流的时候遇到了一个很大的问题,用数码相机或者扫描仪,获取的图片字节数太大,少则几兆,多则几十兆,给网络传输和网站公布都带来了不少的麻烦,通过PS能够将这些大字节数的图片文件处理为大小适中的图片(以便使备份与同行相互远程传输也显得比较容易)。但不能够自动批量处理,而其有版权的问题,经过半年的努力,笔者用C++开发了自动批量处理的图片处理软件。

软件开发考虑到可应用到其他领域,因此需考虑通用的因素,软件进入界面如图1所示。

二、软件功能

1.视频浏览:如果当前文件夹下有视频文件,可以进行浏览,只能播放mpeg格式,如果图片文件列表第一个文件是视频格式文件,就自动播放,如果要处理图片文件,单击“结束视频”。

2.转换图片:单击文件列表框文件,单击“转换设置”显示当前选准图片的像素高度和宽度,保持图片纵横比保持图片不变形,输入要转换的像素数据,按照原图片的纵横比计算相对应的像素,并加以显示。选择“转换当前图片”,是指转换当前选准的图片,选择“连续转换”是指自动连续转换左边文件列表框内的所有图片文件,按照统一像素尺寸、同一格式进行转换,这种情况适用于图片大小格式一样的一组照片;“转换文件另存”是指转换成的目标文件另存为,原文件名_1.jpg,

“覆盖原文件”是指转换动作完成生成的文件名就是选准的文件名,将原文件名覆盖,这种覆盖无法恢复。

3.可用于教师编写专业教材时,对教材插图的处理,利用单个图片文件的处理。

三、代码实现

单击“执行”(Button7)事件函数

void__fastcall TForm1::Button7Click(TObject *Sender)

{

Form1->Button8->Enabled=false;

Form1->Panel6->Visible=false;

if(Form1->RadioButton1->Checked==true)//转换当前图片

{

ppc=ppc.LowerCase();

int k=ppc.Pos(".jpg");

int k1=ppc.Pos(".jpeg");

int j=ppc.Pos(".bmp");

if(j>0 || k>0 || k1>0)

{

WRJPG(ppc);//-----转换函数

Application->MessageBox("图片大小转换成功","信息",48);

Form1->FileListBox1->Update();

}

else

{

String kdv="";

kdv=kdv+ppc+"不是图片文件,所以无法转换";

Application->MessageBox(kdv.c_str(),"信息",48);

}

}

if(Form1->RadioButton2->Checked==true)//连续转换

{

int mk=Form1->FileListBox1->Items->Count;//获取图片文件列表总数

int ndkf=0;

Form1->ProgressBar1->Min=0;

Form1->ProgressBar1->Max=mk;

Form1->ProgressBar1->Visible=true;

for(int i=0;i<mk;i++)//---执行连续转换循环

{

Form1->ProgressBar1->Position=i;

Application->ProcessMessages();

ppc=Form1->FileListBox1->Items->Strings[i];

ppc=ppc.LowerCase();

int k=ppc.Pos(".jpg");

int k1=ppc.Pos(".jpeg");

int j=ppc.Pos(".bmp");

if(j>0 || k>0 || k1>0)

{

try {

Form1->Image1->Picture->LoadFromFile(ppc);

ndkf=ndkf+1;

WRJPG(ppc);//--核心转换函数

}

catch(...){}

}

}

Form1->ProgressBar1->Position=mk;

Form1->ProgressBar1->Visible=false;

Form1->FileListBox1->Update();

String dkc="";

dkc=dkc+"共有"+IntToStr(ndkf).c_str()+"个图片文件进行成功转换"; ;

Application->MessageBox(dkc.c_str(),"信息",48);

}

Form1->Button8->Enabled=true;

}

核心转换函数WRJPG();

void __fastcall TForm1::WRJPG(AnsiString filename)

{

if(p<=0 || q<=0) return ;//转换像素的宽度和高度

if(p>0 && q>0)

{

Graphics::TBitmap *tmpBitmap = new Graphics::TBitmap();//动态生成位图类

Graphics::TBitmap *tmpBitmap2 = new Graphics::TBitmap();//动态生成位图类

TJPEGImage*tmpBitmap1 = new TJPEGImage();//动态生成JPG类

filename=filename.LowerCase();

int lq=filename.Pos(".bmp");

int lp=filename.Pos(".jpg");

int lp1=filename.Pos(".jpeg");

if(lp>0 || lp1>0) {

tmpBitmap1->LoadFromFile(filename);//将位图装载到生成的位图类tmpBitmap1

tmpBitmap->Assign(tmpBitmap1);//将位图类转换为jpg类

}

if(lq>0)

tmpBitmap->LoadFromFile(filename);

tmpBitmap2->Width=q;

tmpBitmap2->Height=p;

tmpBitmap2->Canvas->StretchDraw(Rect

(0,0,tmpBitmap2->Width,tmpBitmap2->Height),tmpBitmap);//将转换目标像素画布

TJPEGImage *jp = new TJPEGImage();

try

{

//将位图文件写入TJPEGImage 类

jp->Assign(tmpBitmap2);

jp->CompressionQuality = 85;//指的是转换质量,100为最高质量,加上这句就可以了

jp->Compress();//执行写入

AnsiString jpc,jpd;

//int l0=filename.Length();

int l1=filename.Pos(".");

if(l1>0)//有扩展名

{

jpc=filename.SubString(1,l1-1);

if(Form1->RadioButton4->Checked==true)//覆盖原图片文件

{

if(lp1>0)

jpc=jpc+".jpeg";

else

jpc=jpc+".jpg";

}

if(Form1->RadioButton3->Checked==true)//另存为文件

{

if(lp1>0)

jpc=jpc+"_1.jpeg";

else

jpc=jpc+"_1.jpg";//原文件名+“_1.jpg”

}

}

if(l1<=0)//没有扩展名

{

jpc=filename;

if(Form1->RadioButton4->Checked==true)

{

if(lp1>0)

jpc=jpc+".jpeg";

else

jpc=jpc+".jpg";

}

if(Form1->RadioButton3->Checked==true)

{

if(lp1>0)

jpc=jpc+"_1.jpeg";

else

jpc=jpc+"_1.jpg";

}

}

//Application->MessageBox(jpc.c_str(),filename.c_str(),48);

jp->SaveToFile(jpc);//将jpg类保存为jpc文件

}

__finally

{

delete jp;//删除jp类

}

delete tmpBitmap;

delete tmpBitmap1;

delete tmpBitmap2;

}//p>0 && q>0

软件批量安装 篇3

本文主要讨论批量部署Linux的两个方法, 以安装Ubuntu为例。

方法一:

一个常用的方法是通过网络安装, 本文以采用PXE+Kickstart+Dnsmasq+Ubuntu方案为例。

Ubuntu存在多个镜像类型, 还有很多的衍生版本, 在这里只是想说明下, 这里的批量安装方案只支持Alternate镜像。

这个安装环境需要服务器支持, 在服务器 (ubuntu10.04, ip, eth0:192.168.1.200, eth1:10.10.52.100) 上构建Server环境, eth0为构建单独的局域网环境新建的, eth1负责外网访问需求。进行网络安装需要PXE引导, PXE是一种操作系统的引导方式。进行PXE安装的必要条件是在要安装的计算机中必须包含一个PXE支持的网卡, 即网卡中必须要有PXE Client。PXE (Pre-boot Execution Environment) 协议可以使计算机通过网络启动。此协议分为Client端和Server端, 而PXE Client则在网卡的ROM中, 当计算机引导时, BIOS把PXE Client调入内存中执行, 然后由PXE Client将放置在远端的文件通过网络下载到本地运行。运行PXE协议需要设置DHCP服务器和TFTP服务器。

DHCP服务器会给PXE Client (将要安装系统的主机) 分配一个IP地址, 由于是给PXE Client分配IP地址, 所以在配置DHCP服务器时需要增加相应的PXE设置。

服务端配置:

1) 安装环境

2) 配置kickstart

在命令行中键入system-config-kickstart, 根据出现的界面配置相关信息, 最后保存为ks.cfg, 如下是我在实验环境中使用的配置信息:

创建目录mkdir-p/var/www/ubuntu, 将上述的ks.cfg文件保存在/var/www/ubuntu中。

3) 设置镜像文件

4) 配置dhcp

5) 配置Dnsmasq

6) 重启服务

客户端启动的时候, BIOS中开启PXE引导选项, 选择从网络启动即可进行无人值守安装系统。

方法二:

目前多数计算机教室的电脑装有还原卡的, 并且电脑也是同型号的。还原卡又个很方便的功能, 网络拷贝, 可以在一台计算机上装好Linux系统, 然后通过还原卡的网络拷贝功能传输到其他每一台计算机上。

但是因为是网络拷贝, 所以会有一些小问题需要解决。比如Windows传送的时候会有SSID相同的问题。Linux网络拷贝后, 会发现计算机可能上不了网络, 通过ifconfig, 发现输出的是eth1的信息, 而不是eth0。这是因为eth0已经和拷贝样机的mac地址绑定了, 所以只能使用eth1了, 但是系统的IP等网络参数配置又是针对eth0的, 所以可能造成网络不通。解决这个问题的一个方法是重新为eth1配置网络参数。另一个方法是重新把eth0绑定到本机mac上。

删除这个文件的非注释行, 保存文件, 重启系统。需要的话, 再重新配置eth0的网络参数。

更好一些的方法是在样机系统安装好后, 先删除文件“/etc/udev/rules.d/70-persistent-net.rules”中的非注释行, 保存、关机。网络拷贝传输之前不要重启进入样机Linux系统, 这样可以避免逐台修改文件。

摘要:Linux系统教学中要准备教学环境, 经常需要安装几十甚至上百台计算机, 逐台安装非常费时费力。本文简单介绍了批量安装Linux系统的两个方法。

软件批量安装 篇4

关键词:Ghost,网络克隆,DHCP,启动U盘

我院医疗临床科室的200多台微机已使用多年, 需要进行统一整体更换。而面对上百台计算机, 如果每台微机都去安装操作系统和应用软件, 或者每台微机都进行硬盘克隆, 会大大增加维护人员的工作量, 延误医疗科室的正常工作。那么有没有一种更加方便、高效办法解决这个问题呢?利用Ghost网络克隆技术, 在半天到一天的时间内就可以轻松完成。在这里主要使用了Ghost 7.0企业版的网络功能、DHCP动态主机设置协议以及启动U盘来实现网络批量克隆。

1 网络克隆前的准备工作

由于我院是整体更换新微机, 硬件和软件的配置相同 (除了IP地址和机器名称) , 因此先从这批微机中找一台微机, 分成3个磁盘分区, 安装上操作系统、驱动程序、医疗应用软件以及杀毒软件, 这时先不配置机器名和IP地址。然后通过单机版ghost8.2软件, 选择"Disk"->"to Image"方式制作一个源盘 (母盘) 镜像文件, 并把该镜像文件复制到ghost服务器上。

2 ghost服务器配置及客户端启动U盘的制作

1) 使用一台HP6000 L3作为服务器, 操作系统为Windows 2000 Advanced Server, 由于网络克隆需要服务器提供DHCP服务, 所以还要安装和配置DHCP服务。打开控制面板中的“添加删除程序”, 切换到“添加删除Windows组件”, 然后点“组件”按钮, 在弹出的对话框中选择网络服务, 点详细信息, 勾上里面的“动态主机配置协议 (DHCP) ”, 然后点确定, 下一步, 并按照提示插入Windows2000 Advanced Server的安装光盘即可完成安装。接下来打开DHCP服务器的控制台配置普通作用域, 设置地址池, 输入开始IP:192.168.0.1和结束IP:192.168.0.200地址和子网掩码, 然后设置DHCP的租约 (IP地址默认的租约为多久, 默认为8天) , 最后设置网关192.168.0.251, DNS, WINS等内容, 就完成了DHCP服务的安装配置。

2) 进行Ghost 7.0企业版的安装。

3) 通过Ghost 7.0企业版制作客户端的启动U盘

点击“开始”->“程序”->“Symantec Ghost”->“Ghost Boot Wizard”, 通过制作向导完成客户端启动软盘的制作。但是现在的机器上软驱都不配置了, 所以需要把客户端启动盘软盘制作成客户端启动U盘。

首先, 把空白U盘通过U盘量产工具制作成启动型“USB-ZIP (USB软盘) ”。

其次, 利用虚拟软驱软件生成DOS引导盘, 并用windows自带的subst命令把本机E盘下的“AA”文件夹虚拟为软盘A盘:“E:MD AA”、“E:SUBST A:e:AA”, 然后通过GHOST的客户端启动软盘制作向导完成制作。然后把用于DOS引导的3个文件, 用命令:“SYS c:”生成到虚拟A盘中。把虚拟A盘中的所有文件复制到启动U盘中, 这样就完成了客户端启动U盘的制作。

3 进行网络克隆

1) 在服务器端, 运行Mlticast server, 在“Session Name”处添加名称“KL”。然后选择第一个选项, “Load To lients”, 意思是将镜像包加载到客户。点击“Browse”按钮, 指定镜像文件的位置。然后点击右侧的“Accept Clients”, 开始准备接受客户端的网络克隆请求。

2) 在客户端, 用我们刚才做好的启动盘启动电脑。开机自动进入ghost, 选择“Multicasting”, 客户端的ip已经自动分配。接着填写服务器端的任务名称, 在这里是“KL”。客户端开始和服务器端联系, 获取当前ghost镜像的详细信息, 包括大小, 分区情况。无需做修改, 直接点击确定即进入等待状态。在服务器端的任务列表上就会出现等待克隆的机器, 当所有客户机都显示在服务端的任务列表中后, 从服务器端点击“Send”按钮, 网络克隆就可以开始了。

3) 200台机器网络克隆用了大半天时间, 依次重启每台客户机器, 并更改其计算机名和IP地址等信息后, 大批量微机系统安装过程才全部结束。

4 结束语

目前, 我院其他科室的大批量微机更新还在不断进行, 通过使用企业版Ghost的网络多播、DHCP和客户端启动U盘技术, 在进行大批量的系统安装维护时, 实现了不拆开主机的机箱就能完成系统的批量克隆, 显著提高了系统安装维护的效率, 节省了大量的人力和时间。

参考文献

[1]陈慧芬.Norton Ghost网络多播技术在机房维护中的应用[J].惠州学院学报, 2008 (12) :89-92.

软件批量安装 篇5

关键词:软件批量部署,puppet,工具,硬盘对拷,软件

云计算的实施过程中, 在Iaa S层, 硬件资源通过云计算平台软件的支持, 如:vmware的exsi、openstack的xen, 被转化成虚拟的资源, 可以被分配给不同的机器, 最终提供给不同的用户使用。在此过程中, 硬盘中的资源会被重写, 软件需要重新安装。一般情况下, 少量软件可以通过人工的方式安装, 或通过编写VBS脚本小批量安装[1], 以提供给客户使用。但是当项目被用于集群时, 软件的重复部署工作会非常繁重。通常情况下, 系统管理员常用的方法是对拷硬盘, 以减少工作量, 但这种方式不能实现自动, 需要人工持续干预, 也无法实现日志记录的汇总。当拷贝中断后, 工作只能重新进行。本文介绍的基于puppet工具的软件批量部署方法可以有效地自动完成软件的批量安装, 安装过程可以记录日志、断点可续, 同时软件的配置文件也可以自动由puppet管理, 其对于云计算中软件的批量部署工作有很大的意义[2]。

1 批量部署原理

1.1 puppet工具原理

puppet是一种Linux、Unix、Windows平台的集中配置管理系统, 使用自有的puppet描述语言, 可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称为资源, puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。简单地说, puppet就是系统管理员用以维护系统运行环境、批量维护软件的配置文件, 可以同时更改上千台的计算机的配置文件。

puppet是CS结构的服务, puppet客户端用来搜集客户机的状态, 以提供给puppet服务器端。puppet客户端, 每经过30 min (时间可以自行设定) 向puppet服务端发送请求, 同步文件, 更新属于客户端的puppet编码程序内容。在同步文件内容完成后, 客户端执行代码, 完成同步, 并向puppet服务器端反馈内容。puppet能够管理的五大资源中, 文件管理是通过同步文件内容完成的, 这也是利用puppet软件进行软件部署的最关键的一个环节。基于此机制, 当软件满足如下情况时, 我们可以将软件的内容由服务端同步到客户端, 同时完成对此软件的配置。

(1) 软件运行环境为Unix或是类Linux操作系统;

(2) 软件可静默化安装, 即:安装过程无需人机交互, 或者可以按照默认值进行软件的默认安装;

(3) 软件配置完成后, 通过更改配置文件可以更新软件配置数据, 并在重启后生效。

1.2 批量部署的控制流

在puppet工具已在计算节点部署完毕的前提下, 批量部署应用软件的过程解释如下:

(1) 通过svn工具, 可以编辑puppet服务器端的配置文件和同步软件实体介质。同步后的配置文件或软件实体, 直接存放在puppet服务器端的指定目录下, 或者通过硬连接的方式把内容同步到puppet服务端的指定目录下, 以此来远程控制puppet软件和控制目标软件的批量部署过程。如图1所示“svn—puppet主控”部分。

(2) 设置puppet服务器端的目录结构, 使得软件的实体介质内容全部在puppet同步区的指定位置。如/etc/puppet/manifest/testmode/usr/local的目录, 其中/etc/puppet/manifest/是pupept服务端的结构目录。Testmode是puppet代码模板的名称。后面的/usr/local/则是需要批量安装的软件的目录和实体内容。如图1所示“puppet主控”部分。

(3) 通过puppet服务器端的配置文件, 指定软件的实体内容和各客户端计算机的关系。之后, 每隔一段时间, puppet客户端会访问puppet服务器端, 同步软件的实体内容。由于是静默化安装, 同步软件的实体内容之后, 软件即可安装完成。如图1所示“puppet主控—客户端”部分。

(4) 通过改变puppet服务器和客户端的对应关系, 能够使得puppet可以在不同的客户端上获取并同步不同版本的目标软件。并且puppet软件可以自动完成目标软件的安装。之后, 通过puppet工具在客户端执行启动软件的命令, 如果软件能够启动, 则安装成功, 否则, 安装失败。成功或者失败的信息会通过report机制将内容反馈给服务器端。如图1所示“客户端—puppet主控”。

1.3 批量部署的工作流

部署过程的详细原理图如图2所示:

第一步, puppet模板文件的管理:配置puppet工具自身的文件;

第二步, puppet服务器端和客户端建立认证;

第三步, puppet服务器端的目录结构和客户端的版本对应关系的配置 (一个puppet服务端可以向多个客户端安装不同的软件) ;

第四步, 软件介质的同步;

第五步, 安装过程的日志记录信息, 被同步到puppet服务器端。

2 传统部署和puppet部署的比较

在传统的批量部署中, 通过硬盘对拷进行软件批量部署的情况较多, 指的是将已经调试通过的系统所在的硬盘作为模板盘, 整体拷到其他硬盘上, 从而达到软件快速批量安装的目的。两种批量部署方式的优劣对比如下:

(1) 实现前提, 都需要满足静默化安装, 或者说在安装过程中, 安装的软件对硬件信息无关, 具有独立性, 否则, 对拷是不能进行的, 或即使能够对拷, 软件也不能够正常使用。非独立的软件系统, 也不满足puppet批量安装软件的要求。

(2) 通过puppet工具的软件批量安装, 能够实现软件自动化安装, 而硬盘对拷方式需要全程人工值守。

(3) 前者puppet工具断点可续, 后者对拷方式中断后必须重新对拷。

(4) 前者可差异化安装, 通过同一puppet服务器可对不同的计算节点安装不同的软件。后者只能机械的对拷不同的镜像。当差异化要求非常细致的情况下, 对拷方式无法满足。

(5) 前者具有日志汇总功能, 后者只能通过对拷过程中反馈的信息得知过程的进展。

(6) 前者操作简单, 不需要复杂系统的支持, 后者需要puppet工具在系统中已经安装, 并需要对puppet工具进行维护。

3 试验

试验中, puppet模式的批量安装和对拷模式的批量安装两种方式在完成相同任务后, 通过分解任务、多次评比的流程进行时间上和效率上评估。

试验内容方面, 主要是对若干台物理机批量安装geoeast大型软件进行比较 (geoeast软件是东方地球物理公司自主研发且一直在应用的数据分析软件, 软件结构包括对oracle软件的静默化安装和对geoeast软件实体的安装配置) 。

试验步骤:

(1) 应用puppet工具批量部署geoeast软件, 记录完成时间、中断次数、成功率等信息。

(2) 通过传统的批量部署方式, 即硬盘对拷的方式安装软件。记录完成时间、中断次数、成功率等信息。

(3) 重复 (1) , 以获取平均值。

(4) 重复 (2) , 以获取平均值。

(5) 改变物理机的个数 (以5台虚拟机为增量, 分5、10、15台等数量进行试验, 以等差数列的形式增加) , 重复 (1) ~ (4) 的过程。

(6) 汇总计算数据, 得出分析结果。

通过以上步骤, 我们获取了数据图如图3。

得出如下结论, 在不考量puppet模式所具有的断点可续、差异化安装、日志汇总优势的前提下, 同样的物理条件, 当物理机台数小于20的情况下, puppet模式由于需要安装puppet工具, 同时需要对puppet的控制代码进行编写和调试, puppet不具有太大优势, 但当批量部署的数量超过20台时, puppet批量部署优势将逐渐明显。而对拷模式由于中断情况的增加, 使得平均每台的装配时间更长, 再加上对拷完成后, 需要进一步对系统进行参数调整, puppet工具会具有更大的优势。

需要特别指出, 当物理机节点个数增加超过50台时, 由于puppet服务器的负载量过大, 通常我们需要做puppet的集群, 来均衡puppet客户端对服务器端的访问量。

4展望和应用

puppet工具在系统管理领域发展迅速, 在自动化系统管理方面功能强大, 同时官方的说明文档全面详细, 中文社区活跃, 并且Google、Cisco、Twitter、Red Hat、New York Stock Exchange等众多公司和机构在其数据中心的自动化管理中用到了puppet。puppet的大量应用以及技术的成熟, 必定能在软件的批量安装领域更加成熟。尤其是puppet和openstack正在做模块集成, 这必将给云计算带来革新性发展。在软件数量较大且满足静默化安装的前提条件下, 通过puppet做批量部署是更好的选择。

参考文献

[1]高慧星.机房软件的批量安装[J], 硅谷, 2011 (03) :179-181.

软件批量安装 篇6

自二十世纪九十年代以来,GPS一直在地学研究领域,尤其是在大地测量领域扮演着一个举足轻重的角色。为了加强国际间GPS地学研究合作应用,国际大地测量协会(International Association of Geodesy,IAG)于1993年成立了国际GPS服务组织(International GPS Service,IGS),并于1994年1月正式运作。近年来,随着俄罗斯GLONASS系统的全面恢复与现代化,以及欧盟Galieo系统、中国北斗(BD)系统的大力发展, 经IGS董事会投票决定将其名称更改为国际GNSS服务(International GNSS Service)。IGS组织是一个由全世界各国的GNSS研究部门自愿加入的非政府组织,它主要由全球GNSS跟踪站网、数据中心、数据分析中心和协调分析中心、中心局及发布中心等几部分组成[1,2]。目前开展的主要日常工作是提供GNSS观测数据及IGS产品,以满足GNSS的工程应用和科学研究。随着GNSS技术不断发展,基于GNSS的应用和科学研究也不断深入,从而IGS数据的使用也日益频繁,所以一款简单高效的IGS数据下载软件将给GNSS用户及研究者带来极大的便利。目前用户主要的下载方法有两种,第一种是利用FTP软件或者IE浏览器,该方法是纯交互式的,需要多次在数据库里切换目录,查找下载文件,下载过程非常繁琐,费时费力,尤其是在大量下载数据的时候,就会显得效率极其低下。另一种是基于脚本语言(如Perl语言,Linux SHELL语言)编写的批处理下载脚本,例如高精度GPS数据处理软件GAMIT自带的下载脚本[3],该方法在数据下载过程中虽然不需要交互,效率高,但是脚本程序一般是基于Linux平台运行,且不存在可视化界面,对一般的用户增加了使用难度。鉴于这两种方法的不足,国内也曾有人研制了专门下载数据的客户端软件[4,5,6],但主要针对某一具体应用,普适性不强,且只考虑GPS观测数据、精密轨道和钟差产品,功能比较单一,用户不能对下载相关参数进行更新或重新配置,不具有扩展性。本文基于Visual Studio开发平台,采用Windows SDK函数以及多线程编程技术,设计并研发了IGS数据批量自动下载软件。该软件克服了上述下载手段的不足,操作简便、界面友好、运行稳定,具有可扩展性,使得大量下载IGS数据变得快捷高效,从而极大地减轻了用户的工作量, 降低了对用户的技术要求。

1 IGS数据

IGS数据包括IGS跟踪网的GNSS观测数据,以及各IGS分析中心和协调分析中心提交的产品数据,例如GNSS卫星精密轨道、精密钟差、电离层改正模型等等,以及一些描述信息的元数据,包括IGS跟踪站信息,IGS分析中心的分析策略信息等等。前两者在GNSS工程应用及科学研究中使用较为广泛、频繁,而后者为辅助信息,本文主要针对前两者。

1.1 IGS数据组织方式

自IGS组织建立以来,GNSS相关数据的存储与分发就采用了一套高效的组织方式,如图1所示,通过操作数据中心、区域数据中心和全球数据中心三级方式进行。操作数据中心直接与每台接收机联机或与遥测站联控,负责每日采集数据并将每台接收机的原始数据归档,然后将原始数据从接收机格式转换为RINEX通用格式,并进行压缩后传送到区域或全球数据中心。区域数据中心负责辖区内各操作数据中心的数据集中,除存储本地区用户关注的测站数据外,将集中的数据传送到全球数据中心。全球数据中心将所有的数据提供给IGS分析中心,各IGS分析中心利用高精度的GNSS数据处理软件(如Bernese、GAMIT、NAPESO、GIPSY等)对其进行分析处理生成各种IGS数据产品,随后传送到协调分析中心和全球数据中心。协调分析中心生成的IGS综合数据产品也上传到全球数据中心供用户使用。

1.2 IGS数据归档方式

IGS组织从建立至今已有近二十年,IGS全球数据中心存储的数据也可谓海量,一种简单而又清晰的数据归档方式将给用户查找和下载数据带来极大方便。目前全球数据中心有三个,它们分别是美国NASA戈达德空间飞行中心地壳动力学数据信息系统(CDDIS:ftp://cddis.gsfc.nasa.gov/pub/gps/)、美国斯克里普斯海洋地理研究所(SIO:ftp://lox.ucsd.edu/pub/)、法国国家地理研究所(IGN:ftp://igs.ensg.ign.fr/pub/igs/)[7]。IGS的各种数据就按照一定的目录结构存放在全球数据中心的FTP服务器上,对于不同的FTP,具体的目录组织结构稍有不同,但基本结构如图2所示(以CDDIS为例)。图2中正体部分是真实存在的目录,而斜体部分为变量,wwww表示GPS周、doy表示年积日,yyyy表示年份的四位数,yy表示年份的最后两位数,g表示GLONASS的导航文件,n表示GPS的导航文件,m表示气象文件,o表示观测文件,d表示压缩后的观测文件,省略号表示省去了一些目录。图2给出的是GNSS数据的主体目录,更细一步的了解可以通过FTP软件登入到服务器进行查看。

1.3 IGS数据命名规则

有序的文件归档和规范的文件命名是实现IGS数据自动批量下载的前提条件。IGS数据的文件类型较多,限于篇幅,本文只描述两种主要的文件的命名规则。RINEX[8]文件的命名规则为: ssssdddf.yyt,其中,ssss表示4字符长度的测站名称,ddd表示文件中第一个记录所对应的年积日(从每年的1月1日开始计算),f表示时段号,取值为0~9或A~Z,当为0时表示文件包含了当天所有的数据,yy表示年份两位数字,t表示文件类型(O表示观测数据文件、N表示GPS导航文件、M表示气象数据文件、G表示GLONASS导航文件、H表示同步卫星导航文件、C表示卫星钟和站钟信息文件)。SP3[9]格式的精密轨道文件的命名规则为: tttwwwwd.sp3,其中,ttt表示精密星历的类型,包括IGS(事后精密星历)、IGR(快速精密星历)、IGU(预报精密星历)等多种,wwww表示GPS周,d表示星期(0则表示星期日,若为1~6则表示星期一至星期六)。更多的文件命名规则可参考GNSS相关教材和网络资源。

2 软件设计

2.1 软件功能分析

本软件的功能主要包括IGS数据下载和辅助工具两个部分,如图3所示,前者通过选项卡实现,而后者通过菜单实现。辅助功能包括FTP服务器管理、GNSS站点管理、时间转换、坐标转换、数据转换、数据质量分析、第三方FTP下载、操作说明等。其中,“FTP服务器管理”实现查看全球以及区域数据中心FTP服务器的详细信息、每一个FTP站点包含的数据类型以及存储格式、编辑已有的FTP站点、添加新的FTP站点或删除已有的FTP站点;“GNSS站点管理”实现对全球网站点(IGS站点)或者区域网站点进行管理,包括查找、添加、删除某一站点;“数据质量分析”使用TEQC对下载后的数据文件进行预处理和质量检查,并将数据质量以图形化的方式直观地展现给用户;“第三方FTP下载”通过使用第三方免费FTP软件(如FileZilla)查看数据未下载成功的原因,或者在下载少量数据时作为一种可选择的下载方式。下载功能通过设置下载参数、执行数据下载、记录下载日志三步骤完成。下载参数包括数据时间范围和数据的本地存储路径、观测数据的测站选择、以及要下载的数据类型等。其中测站选择除了提供传统的站名选站方式外,还提供了直观高效的图形选站方式,后者在测站数较多且站点分布相对集中时优势明显。

2.2 IGS数据下载流程

IGS数据下载的整个流程如图4所示。其步骤可描述为:①读取用户设置的参数;②依据设置的

时间、选择的测站以及选择的数据类型得出要下载文件的名称;③计算请求下载的文件数;④执行文件下载并显示进度;⑤检查文件是否已存在,若不存在则自动转到其它FTP继续下载该文件,否则跳到下一个文件;⑥若下载成功就保存文件;⑦完成下载,生成日志文件。

3 软件实现

依据上面的软件设计方案,作者基于Visual Studio(VC++)平台,开发实现了GNSS数据批量自动下载软件。该软件具有用户界面友好、操作简便、运行效率高等优点。图5(a)为FTP服务器管理的操作界面,而图5(b)为GNSS跟踪网的站点管理的操作界面,分别对应着上面的辅助功能设计。限于篇幅,其它辅助功能的界面不在此一一列举。图6给出的是四个选项卡界面,它们依次实现下载数据的参数设置。若不需下载GNSS观测数据时,则直接设置第一和第四选项卡参数就可执行数据下载,整个下载无需人工干预,且可实现断点续传,下载的状态信息可通过生成的日志进行查看。

4 结论

IGS全球数据中心归档的GNSS观测数据及其衍生数据产品为全世界的大规模、高精度GNSS数据处理及科学研究带来了极大便利。然而传统的基

于FTP软件的下载方式操作繁琐且效率低下,基于批处理脚本的下载方式因无可视化操作界面而略显复杂,且一般依赖于UNIX平台。针对以上不足,本文基于Visual Studio(VC++)平台,设计并研发了IGS数据批量自动下载软件。该软件操作简便、界面友好、运行稳定,具有可扩展性,能动态、灵活地增删GNSS观测网或对某一GNSS观测网增删观测站,除了常规的依据站名选站的方式外,还具有直观高效的图形选站功能,并同时支持GNSS观测数据及IGS产品下载,这些优势可为大规模下载IGS数据带来便利和高效。

摘要:随着全世界GNSS技术的不断深入发展,人们对IGS全球数据中心归档的GNSS数据及产品的下载日益频繁。本文针对传统下载方式的不足,基于Visual Studio(VC++)平台,设计并开发了IGS数据批量自动下载软件。该软件操作简便、界面友好、可扩展性强,能为大规模下载IGS数据带来便利和高效。

关键词:GNSS数据,IGS产品,自动批量下载

参考文献

[1]Kouba,J.A Guide to Using International GNSS Service(IGS)Products,online publication at IGS website,2009.

[2]Dow,J.M.,Neilan,R.E.,&Rizos,C.The international GNSS service in a changing landscape of global navigation satellite systems[J].Journal of Geodesy,2009,83,191~198.

[3]King R.W.,Bock Y.Documentation for the GAMIT GPS Analysis Software Release10.4[EB/OL].USA.2010.

[4]赵桂儒,徐平,吴培稚.IGS服务数据下载软件的研制[J].地震地磁观测与研究,2007,28(3):104~109.

[5]何战科.IGS数据产品批量下载软件的实现[J].电子测量与仪器学报,2009,(S1):245~249.

[6]李峰,阳凡林,李云伟,张会娟,王智明.基于Bernese5.0的GPS数据的自动下载与处理[J].矿山测量,2010,(6):27~30.

[7]张国安,王秀君,徐菊生.国际GPS服务机构(IGS)的现状与最新进展[J].防灾减灾工程学报,2003,(2):115~118.

[8]http://igscb.jpl.nasa.gov/igscb/data/format/rinex210.txt.

软件批量安装 篇7

一、制作奖状模版

打开Word, 制作一张模板。把纸张方向调整为横排, 先用第一个人的姓名、考试类别和获奖等级制作一个奖状模板 (如图1) , 在买来的空白荣誉证书 (如图2) 上打印出这张证书, 并根据纸张大小进行调整, 确保打印出来的格式与空白荣誉证书相符。经过多次尝试 (为防止浪费, 可在一张证书上多次打印, 能看清即可) , 待全部调整好后, 把该文件保存成名为“奖状模板”的文件。

二、准备奖状数据

在Excel表格的第一行中依次输入考号、姓名、考试类别、分数和获奖等级五个字段名, 根据某校的竞赛成绩录入前四列信息 (如图3) 。假定90~100分为一等奖, 80~89分为二等奖, 70~79分为三等奖, 其余无奖, 则可在E2 (第二行第E列对应的单元格) 单元格中输入“=IF (D2>=90, "一等奖", IF (AND (D2>=80, D2<90) , "二等奖", IF (AND (D2>=70, D2<80) , "三等奖", "") ) ) ”, 按回车键, 即可得到第一名同学的获奖等级 (注:语句中的所有标点应为英文符号) 。这个语句的意思是:若D2单元格中的分数大于或等于90分, 则在E2单元格中显示“一等奖”;若D2单元格中的分数大于或等于80分而小于90分, 则在E2单元格中显示“二等奖”;若D2单元格中的分数大于或等于70分而小于80分, 则在E2单元格中显示“三等奖”;若D2单元格中的分数小于70分, 则不显示任何字符。选定E2单元格, 拖动其填充句柄 (鼠标停在选定框的右下角时所变成的“+”) 至E11, 则上述语句中的D2会依次变为D3, D4, …, D11, 便可得到其他几位同学的获奖等级。若人数很多, 则只需拖动填充句柄至最后一人即可。在Excel表格的左下方, 会有“Sheet1、Sheet2等多个表单, 把“Sheet1”命名为“成绩单”, 把“Sheet2”命名为“获奖名单”。复制成绩单中的数据到获奖名单中, 在获奖名单中对数据进行自定义排序, 排序条件依次为“考试类别”和“分数”, 删掉后面没获奖的数据后, 得如图3所示的获奖名单, 把该文件保存为“奖状数据”。

三、进行邮件合并

在Word2007中, 打开“奖状模板”文件, 依次选择“邮件→选择收件人→使用现有列表”, 找到并选择“奖状数据”文件中的“获奖名单”工作簿, 完成收件人的选择。先将获奖模板中的姓名删掉, 把鼠标定位到需要插入姓名的地方, 单击“插入合并域” (按钮如图4) , 在弹出的对话框中选择“姓名”, 单击“插入”按钮, 即可完成姓名的插入。用同样的方法可以完成考试类别和获奖等级的插入。对插入的字体格式也可进行设置, 完了可得如图5所示的样式。

如果你的电脑中安装的是Word2003, 可依次选择“视图→工具栏→邮件合并”, 在新出现的工具栏中选择“打开数据源”, 并选择“奖状数据”文件, 打开后选择“获奖名单”工作簿, 单击“确定”按钮, 即可完成数据的选择。将鼠标定位到需要插入姓名的地方, 单击“插入域”, 在弹出的对话框中选择“姓名”, 单击“插入”按钮即可完成姓名的插入。用同样的方法也可以完成考试类别和获奖等级的插入 (如图6) 。

四、查看合并效果, 完成打印

在Word2007中, 选择“预览结果”按钮 (如图7) 便可查看第一个结果, 单击下图中向右的三角, 即可依次浏览合并后的效果。依次选择“完成并合并→编辑单个文档” (按钮如图7) , 便可以生成一个包含所有奖状的Word文档, 就可以分别进行编辑或批量打印了。

如果你的电脑中安装的是Word2003, 可依次选择“查看合并数据→下一纪录”, 就可以分别浏览合并后的效果, 选择“合并到新文档”可以生成一个包含所有奖状的Word文档, 这样就可以进行批量打印了 (如图6) 。

五、归纳与小结

1. 批量打印奖状的四个步骤。

(1) 制作奖状模板:运用Word制作奖状模板, 需经过多次打印并调整, 直到满意为止。

(2) 准备奖状数据:运用Excel, 借助编写语句和自动填充功能, 可进行大量数据的准备。

(3) 进行邮件合并:虽然Word2007和Word2003的按钮名称稍有不同, 但相同的是都有选择数据源和插入引用项两个步骤。在这里, 需要注意Word2003只能选择Excel2003文件作为数据源。

(4) 预览结果并完成打印:Word2007和Word2003差别不大, 其共同点是当鼠标停在某个按钮上时, 该按钮的名字和功能说明会自动显示在旁边。根据按钮名称和功能说明, 使用者可以完成两个版本的通达。

2. 当Excel文档的存放位置发生变动时, 打开奖状模板文件时有可能需要重新选择数据源。

3. 人数变动或打印成绩单。

上一篇:激励对象下一篇:环节管控