Shell中使用plink工具实现远程批量关机

我的操作系统是centos6.4

操作系统:rhel 6.2 x86_64

下载并安装putty软件包,本人下载了putty-0.62-1.el6.rf.x86_64.rpm
下载地址如下:http://rpm.pbone.net/index.php3

1、远程主机IP列表文件


代码如下:

[root@localhost~]# vim server_list.txt

192.168.0.13
192.168.0.12
192.168.0.11

2、远程主机要执行的操作的文件


代码如下:

[root@localhost~]# vim shutdown.txt

shutdown -h now

3、远程关机自动化脚本


代码如下:

[root@localhost~]# vim remote_shutdown.sh

for i in `cat server_list.txt`
do
plink -l root $i -pw redhat -m /shutdown.txt <<EOF
y
EOF
done

4、脚本赋予执行权限x


代码如下:

[root@localhost~]# chmod a+x remote_shutdown.sh

5、脚本运行


代码如下:

[root@localhost~]# ./remote_shutdown.sh

注意:本人应用环境,所有主机root用户密码均为redhat,请根据实际环境调整,若无规律,可单条列出。

例如:

代码如下:

vim remote_shutdown.sh

plink -l root 192.168.0.12 -pw password1 -m /shutdown.txt
plink -l jane 192.168.0.35 -pw password2 -m /shutdown.txt
plink -l paul 192.168.0.77 -pw password3 -m /shutdown.txt
plink -l root 192.168.0.19 -pw password4 -m /shutdown.txt
 
(或 plink root@192.168.0.19 -pw password4 -m /shutdown.txt)

(0)

相关推荐

  • 用于deeplink的js方法(判断手机是否安装app)

    代码功能:判断手机/平板是否安装app如果安装 则调用app的scheme,传入url当作参数,来做后续操作如果没有安装 则跳转到app store/google play 下载app 复制代码 代码如下: (function() {var openUrl = window.location.search;try{openUrl = openUrl.substring(1,openUrl.length);}catch(e){ }var isiOS = navigator.userAgent.ma

  • Linux实现科学上网

    plink -N -v 服务器用户名@服务器域名 -D 127.0.0.1:7070 -pw 服务器密码 -P 服务器端口 然后安装privoxy 复制代码 代码如下: sudo apt-get install privoxy 编辑配置文件 安装后只需要改动一点配置/etc/privoxy/config,让privoxy开启socks转http.在config中找到下面粗体的一行,把注释的#去掉,将端口号改为上面plink中设定的即可. 复制代码 代码如下: listen-address  19

  • Shell中使用plink工具实现远程批量关机

    我的操作系统是centos6.4 操作系统:rhel 6.2 x86_64 下载并安装putty软件包,本人下载了putty-0.62-1.el6.rf.x86_64.rpm 下载地址如下:http://rpm.pbone.net/index.php3 1.远程主机IP列表文件 复制代码 代码如下: [root@localhost~]# vim server_list.txt 192.168.0.13 192.168.0.12 192.168.0.11 2.远程主机要执行的操作的文件 复制代码

  • shell中使用expect命令进行远程执行命令脚本

    expect是用来实现自动交互功能的工具之一,使用expect-send来实现交互过程. 注意: 1.脚本的执行方法与bash shell不一样,比如:expect example.sh 2.向一个脚本传递参数时,bash shell是使用$1,$2...来接收参数的:而expect则将脚本的执行参数保存在数组$argv中,在脚本中一般将其赋值给变量:set 变量名 [lindex $argv 参数] #!/usr/bin/expect set ip [lindex $argv 0] set p

  • linux shell中的比较符号与特殊符号介绍

    shell字符串比较.判断是否为数字 二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. 整数比较 -eq 等于,如:if [ "$a" -eq "$b" ] -ne 不等于,如:if [ "$a" -ne "$b" ] -gt 大于,如:if [ "$a" -gt "$b" ] -ge 大于等于,如:if [ "$a" -ge "$b"

  • shell中如何批量注释和取消注释

    #!/bin/bash echo "1" echo "2" echo "3" echo "4" echo "5" echo "6" 上面这段shell会依次打印1~6 假设我们想只打印5和6,想将1-4注释掉,除了正常的做法,每行前面加#进行注释外 一.手动添加注释 我们还可以用个取巧的办法,也可以写成下面这种 #!/bin/bash :<<EOF echo "1&

  • 隐藏shell脚本内容的工具 shc详解

    目录 简介 安装 常用选项 编译脚本 实例1 实例2 设置过期时间 如何引用二进制脚本 安全性 小结 从事 Linux 开发的同学,经常需要编写 shell 脚本,有时脚本中会涉及到一些敏感内容,比如一些 IP 地址,用户名以及密码等,或者脚本中有一些关键的代码, 所有这些内容你都不想别人阅读或者修改,更进一步,你希望对脚本设置过期时间,超过指定时间时间之后,脚本就无法使用 在不改变脚本内容.功能以及执行方式的情况下,有没有办法实现上面的需求呢? 答案是:有的, 在Linux下,我们可以使用 s

  • shell中的各种括号的使用方法

    在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命令的用法,如下: 1.${var} 2.$(cmd) 3.()和{} 4.${var:-string},${var:+string},${var:=string},${var:?string} 5.$((exp)) 6.$(var%pattern),$(var%%pattern),$(var#pattern),$(var##pattern) 现在分述如下: 1.Shell中变量的原形:${var} 大家常见的变量形式都是$va

  • Linux中使用crond工具创建定时任务的方法

    前言 crond是一个linux下的定时执行工具(相当于windows下的scheduled task),可以在无需人工干预的情况下定时地运行任务.crond工具提供crontab命令来设置定时任务,属于守护进程,只能精确到分钟,可以设定周期性执行Linux命令或者Shell脚本,每分钟crond都会检查是否有定时任务需要执行 本次实验系统为CentOS 7 操作步骤 (1) 检查crond工具是否安装 yum list installed | grep crontabs 若未安装,则使用如下所

  • 解决android studio中使用monitor工具无法打开data文件夹问题

    使用monitor工具无法打开data文件夹问题 关于/system/bin/sh: su: not found的解决办法 D:\Sdk\platform-tools>adb shell generic_x86:/ $ su /system/bin/sh: su: not found 原因是 Android Studio带(Google Play)的模拟器无法获得root权限安装 该换成为带(Google APIs)的模拟器即可,如下: 无法打开data文件夹的原因是权限不够,需要设置权限 可以

  • 在Eclipse中使用版本管理工具SVN的图文教程

    近日工程中,逐渐感觉到原来复制粘贴代码的笨重,突然想起以前有人和我说起过Git和SVN之类的版本管理工具.由于平时主要是写Java代码,所以能够在Eclipse中使用SVN工具进行版本管理就可以说是很方便了.今天下午动手解决了这一问题,可以初步使用,但是自己对于版本管理的概念不太熟悉,可能有错误,就当是今天工作的一个归纳总结吧. 1.SVN安装 由于这些代码都是自己写的,所以不需要在服务器上进行版本管理,只用本地的版本管理即可(好吧,确实有点low了).自己的系统是win7 32-bit的,所以

  • shell中的for循环用法详解

    for 命令: for i in 的各种用法 : for i in "file1" "file2" "file3" for i in /boot/* for i in /etc/*.conf for i in $(seq -w 10) -->等宽的01-10 for i in {1-10} for i in $( ls ) for I in $(< file) for i in "$@" -->取所有位置参数

随机推荐