如何使windows下的bat文件调用linux下的shell脚本的方法

如何使windows下的bat文件调用linux下的shell脚本的方法,第1张

参考网站:http://www07net01com/linux/ruheshiwindowsxiadebatwenjiandiaoyonglinuxxiadeshelljiaobendefangfa_412980_1371458611html

第一步:规划

在连通bat和shell之前要先把windows和windows之间的关系,linux和linux之间的关系打通。

windows之间用net use 进行连接,linux之间使用ssh进行连接

第二步:打地基

PS:以下所有运行环境都是在超级管理员下运行,省的跳出一些乱七八糟的东西阻碍造桥大计。

windows间可用net use进行测试,查看是否能相连的。

例:net use \\1921681124\ipc$ "123456" /user:"administrator"

net use \\ip地址\ipc$ "密码"/user:"用户名"

这个密码和用户名都是要连接过去那台机子的密码和用户名的

若出现以下提示就证明连接成功

当然万事都是没有这么顺利的。。。

例如。。。

像这么些乱七八糟的错误基本就是网络不通啊,ip地址有误,用户名密码有误之类造成的。。。

所以得多多利用度娘、谷姐之类的神器进行解决。

或许有时候可能还会用到以下一些命令

net use 来查看哪些是存在的

net use \\1921681210\ipc$ /del 用来删除连接

windows的连接方式就是如此。

在你的客户机上用同样的方法去测试需要加入批量关机大军的windows服务器。

linux间通信使用ssh方式来进行。

先进行配置linux间ssh双机互信机制,这样就可以使两机之间通信不需要输入密码进行访问,将密码全部隐藏起来,这样也起到了安全作用。

关于ssh双机信任机制可以我之前的博客上查看

http://alwaysyunweiblog51ctocom/3224143/1222601

第三部:架桥

现在linux机器上写一个shell脚本进行批量关机

其中iptxt存放要批量关机的linux机器ip

当然shutdown_bootsh应该像下面这样写,而不是中的那样,中的内容只是我做测试用的。

#!/bin/sh

for ip in `cat iptxt`

do

ssh $ip <<EOF

echo "{$ip} shutdown now"

ifconfig

init 0

EOF

done

ssh 1921681216 -p10088<<EOF

echo "shutdown 1921681216 now"

ifconfig

init 0

EOF

因为在我的正式环境中216这台机子SSH端口比较特殊,所以单独剥离出来。

桥的一端已搭好,现在搭建另一端,windows下bat脚本来进行windows批量关机

建立一个shutdownbat文件

写入以下内容

#批量关闭windows机器

net use \\1921681249\ipc$ "12345" /user:"administrator"

shutdown -s -f -t 20 -m \\1921681249

net use \\1921681254\ipc$ "123456" /user:"administrator"

shutdown -s -f -t 20 -m \\1921681254

net use \\1921681210\ipc$ "123456" /user:"administrator"

shutdown -s -f -t 20 -m \\1921681210

桥的另一端也搭好了

最后一步就是把两端连起来

这时候就要请出我们的putty工具

可谷姐、度娘下载一个

第一次要进行手动连接

用这个工具进行连接shell脚本所在的那台机子

填上IP和端口即可。

然后进行连接,会提示输入用户名和密码,登入完后就出现sshhostkeys文件夹

然后把shutdownbat文件放入到跟这文件夹同级目录下。

在bat文件添加以下内容

#批量关闭linux机器

D:

cd puttyfile_062cn

puttyexe -ssh -pw 123456-m testsh root@1921681241

简单说下这个语法

puttyext -ssh -pw 密码 -m 要在linux执行的文件 用户名@IP地址

其中testsh也是放在sshhostkeys同级目录下,里面写上你要向linux执行的命令

#!/bin/sh

cd /opt/script/shell

#mkdir /tmp/test061502

sh shutdown_bootsh

#mkdir test06170

最终的结果就是以下内容了

shutdownbat

testsh

这样就大功告成

第四步:后期工作

按照这个流程可以完成最初的要求,但这样会存在很多的安全问题,密码明码就是一个问题,这个还有待研究看要怎样处理。

另外一个,在这个bat文件中最好加一个时间判断,比如晚上6点后点击执行这个bat文件可以正常运行,其他时间段点击时则出现告警,以防误操作导致关机。

还有其他的等等一些内容需要完善,待以后想到了在 进行补充。

主流软件开发语言一:Java作为跨平台的语言,可以运行在Windows和Unix/Linux下面,长期成为用户的首选。自JDK60以来,整体性能得到了极大的提高,市场使用率超过20%。感觉已经达到了其鼎盛时期了,不知道后面能维持多长时间。

二:C三:C++以上2个作为传统的语言,一直在效率第一的领域发挥着极大的影响力。像Java这类的语言,其核心都是用C/C++写的。在高并发和实时处理,工控等领域更是首选。

四:VB微软的看家法宝,实在是太好用了。

五:php同样是跨平台的脚本语言,在网站编程上成为了大家的首选,支持PHP的主机非常便宜,PHP+Linux+MySQL+Apache的组合简单有效。

六:Perl脚本语言的先驱,其优秀的文本处理能力,特别是正则表达式,成为了以后许多基于网站开发语言(比如php,java,C#)的这方面的基础。

七:PyThon是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。

这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。

目前,基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。

八:C#是微软公司发布的一种面向对象的、运行于NET Framework之上的高级程序设计语言,并定于在微软职业开发者论坛(PDC)上登台亮相C#是微软公司研究员Anders Hejlsberg的最新成果C#看起来与Java有着惊人的相似;它包括了诸如单一继承,界面,与Java几乎同样的语法,和编译成中间代码再运行的过程但是C#与Java有着明显的不同,它借鉴了 Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司NET windows网络框架的主角 九:Javascript

Javascript是一种由Netscape的 LiveScript发展而来的脚本语言,主要目的是为了解决服务器终端语言,比如Perl,遗留的速度问题。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有288kbps,验证步骤浪费的时间太多。Ruby的作者认为Ruby > (Smalltalk + Perl) / 2,表示Ruby是一个语法像Smalltalk一样完全面向对象、脚本执行、又有Perl强大的文字处理功能的编程语言

一、入门想用批处理的学习时间其实并不长,建议先了解一下windows的文件结构、然后学学基本cmd命令、最后再学批处理。如果您每天都花1~2小时学习,1周就能写些简单脚本了,但是用好了不容易。因为批处理是操作系统的辅助工具,所以要为系统任务服务,而用批处理实现系统任务目标,了解批处理只占一小部分,最重要的是要了解操作系统知识和网络管理知识。二、精专建议您先学习MCSE和Windows操作系统方面的资料。因为批处理是为了提高命令行方式维护和管理系统的效率的,所以您还是要先知道操作系统都能管什么,构架如何。之后,可以再更系统地学习Windows批处理教程、高级教程和Windows脚本技术等,批处理只是一种脚本技术,Windows下的脚本有很多,而且这些脚本之间不是相互独立的。三、推荐资料在百度文库中找或在百度中搜“批处理”。以下几个教程如果能坚持学完应该挺好:1、批处理经典入门教程 2、DOS批处理高级教程3、Windows命令行详解手册

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何使windows下的bat文件调用linux下的shell脚本的方法

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情