【51CTO论坛改版第二弹】论坛首页有微调,你发现了吗?
0

我的帖子

个人中心

设置

  发新话题
背景:写一个bat文件,双击后就可以关闭所有的服务器包括linux服务器和windows服务器
        因为公司有这需求,在下班后要关闭所有的服务器

这是shutdown.bat的范例
试验证明,windows可以关闭

#批量关闭windows机器
net use \\192.168.1.124\ipc$ "123456" /user:"administrator"
shutdown -s -f -t 20 -m \\192.168.1.124

#批量关闭linux机器
....待补充....



这是linux下的批量关linux服务器的脚本
suse-linux:/opt/script/shell # ll
total 8
-rw-r--r-- 1 root root  84 May 22 10:33 ip.txt
-rwxr-xr-x 1 root root 179 May 22 10:34 shutdown_boot.sh
suse-linux:/opt/script/shell # cat shutdown_boot.sh
#!/bin/sh
for ip in `cat ip.txt`
do
        ssh $ip <<EOF
        echo "{$ip} shutdown now..."
        init 0
EOF
done




我现在需要做的是,在bat这个文件下调用linux服务器下的shutdown_boot.sh这个文件。
问题就在这里了,不知要怎样让bat调用shutdown_boot.sh这个文件

请各位大神指点迷津。。。



你调用也是在windows下执行啊,windows下执行linux的脚本???



如果windows能有ssh命令的话就好办



引用:
echo "请关闭电源总闸!!!"
;P1
本帖最近评分记录
  • gm100861 无忧币 +1 高,实在是高! 2013-6-15 09:38



引用:
原帖由 gm100861 于 2013-6-14 17:43 发表
你调用也是在windows下执行啊,windows下执行linux的脚本???
bat文件去触发linux下的脚本文件,然后就会执行,我的想法是这样的。。。。就不知道要怎样去触发。。。



不带这么打击的。。。:'(
引用:
原帖由 金兔儿 于 2013-6-14 19:13 发表


;P1



windows安装个SSH服务,然后就好办了,就像2楼说的,楼主可以安装一个。



就为这么有想法的创意   版主就应该狠狠的给予加分



引用:
原帖由 gm100861 于 2013-6-15 09:39 发表
windows安装个SSH服务,然后就好办了,就像2楼说的,楼主可以安装一个。
有没多一点的思路提供下,现在比较迷迷糊,没这个思路。。。



引用:
原帖由 叮咚2012 于 2013-6-15 11:23 发表
就为这么有想法的创意   版主就应该狠狠的给予加分
这个得求版主顶贴,搜集下更多的思路方法



引用:
原帖由 叮咚2012 于 2013-6-15 11:23 发表
就为这么有想法的创意   版主就应该狠狠的给予加分
实现了狠狠的加分。



呵呵,简单方法,linux 本机设置一个定时任务。自动关机。windows那个就行



引用:
原帖由 cunti 于 2013-6-15 17:57 发表
呵呵,简单方法,linux 本机设置一个定时任务。自动关机。windows那个就行
这个也想过,当每天关机时间都是不同的,几点下班就几点关机,所以定时任务不靠谱。



引用:
原帖由 juanmaoking 于 2013-6-14 17:33 发表
背景:写一个bat文件,双击后就可以关闭所有的服务器包括linux服务器和windows服务器
        因为公司有这需求,在下班后要关闭所有的服务器

这是shutdown.bat的范例
试验证明,windows可以关闭

#批量关闭windows机器
net ...
很难理解,服务器为什么要关机!重量级的服务器晚上不需要备份,或者数据同步吗?可能楼主公司的情况比较特殊吧,下面说说我的方法:
1、windows下,如果有域的话,直接在DC上运行BAT+计划任务!DC单独写一个BAT关机脚本,成员服务器单独一个关机脚本,先执行成员服务器的脚本,20分钟到30分钟后,再运行DC的关机脚本,依照服务器的多少决定间隔的时间!
   
   如果是工作组环境的话,在其中的一台服务器上运行BAT脚本,前提是先统一所有服务器本地管理员administrator账户的密码,一定要与BAT所在服务器管理员密码相同,这样就不会有权限的问题,其实用NET USE也可以,不过我觉得明文密码不安全!

2、LINUX下我都是用crontab实现自动重启,用关机也一样!



我的微博:http://t.sina.com.cn/lzy821218
引用:
原帖由 juanmaoking 于 2013-6-15 19:59 发表

这个也想过,当每天关机时间都是不同的,几点下班就几点关机,所以定时任务不靠谱。
如果是这样的话,就需要写个脚本,大约在晚上某个时间后开始执行脚本,例如晚8点后,脚本先检测LINUX服务器提供服务的进程情况、CPU或者内存的使用情况,通过多个条件来综合判断,如果资源使用空闲度达多少分钟后,执行关机命令!例如squid服务器,脚本运行后,先重启SQUID服务,然后判断访问LOG文件的大小,并记录下来,等1分钟后,再次判断LOG文件的大小,如果与1分钟前是一致的话,那么可以判断已经没有客户端在使用.或者通过netstat命令来判断3128端口ESTABLISHED连接数,前后1分钟是否有变化,以此判断是否已经空闲!来决定是否可以关机!如果有加班的情况,可以从下班后,每一个小时在crontab里执行一次。



我的微博:http://t.sina.com.cn/lzy821218
引用:
原帖由 lzy821218 于 2013-6-15 20:52 发表

很难理解,服务器为什么要关机!重量级的服务器晚上不需要备份,或者数据同步吗?可能楼主公司的情况比较特殊吧,下面说说我的方法:
1、windows下,如果有域的话,直接在DC上运行BAT+计划任务!DC单独写一个BAT关机脚本,成员服务器单 ...
木有域。。。而且是要做到一个非专业人员可以进行双击bat文件后进行关机。所以最合理的方法就是一键关闭全部机器。
现在有点头绪了,估计下周一就可以有结果了~不过windows机器的密码都是做成了明码状态,这个还有待改进,不过公司现在的环境,对这个还不是重点问题,所以现在可以忽略这个安全性问题,linux可以做成密文的。




本帖最后由 juanmaoking 于 2013-6-15 23:28 编辑
引用:
原帖由 lzy821218 于 2013-6-15 21:24 发表

如果是这样的话,就需要写个脚本,大约在晚上某个时间后开始执行脚本,例如晚8点后,脚本先检测LINUX服务器提供服务的进程情况、CPU或者内存的使用情况,通过多个条件来综合判断,如果资源使用空闲度达多少分钟后,执行关机命令!例 ...
不成,人走之后机房全部断电,所以在要走之前要进行手动关机,等不到让机器判断的时间。
由于所有的服务都是跑内网任务,测试环境,所以数据备份同步都是在上班时,机器运行时备份和同步数据的。



这公司的规章制度简直无敌了:L1



引用:
原帖由 freehei 于 2013-6-16 15:38 发表
这公司的规章制度简直无敌了:L1
既来之则安之。。。



已实现最初想法,可以使用bat调用linux下的shell脚本需要借助第三方工具putty


需要建立两个文件shutdown.bat和test.sh脚本
具体的方法可以查看小弟的博客
http://alwaysyunwei.blog.51cto.com/3224143/1223455
引用:
原帖由 gm100861 于 2013-6-15 16:18 发表

实现了狠狠的加分。
本帖最近评分记录
  • 金兔儿 无忧币 +5 精品博客 2013-6-18 15:32



‹‹ 上一贴:LINUX(centos)安装以后需要做什么   |   下一贴:求助centos6.4显示器未知是怎么回事? ››
  发新话题
快速回复主题
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 友情链接 |意见反馈 | 网站地图
Copyright©2005-2017 51CTO.COM
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系:bbs@51cto.com