shell脚本批量操作linux主机:

一.环境介绍:

开启192.168.100.150-152(ctos1-3)和192.168.100.100(vsftpd)。

1.ssh登录:在192.168.100.100上操作

1)密码登录192.168.100.150:

ssh root@192.168.100.150 ##输入root密码123123

2)配置ssh密钥对登192.168.100.150:

ssh-keygen ##创建密钥对,提示直接回车

ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.100.150 ##输入root密码上传公钥

ssh root@192.168.100.150 ##登录查看是否需要密码

ssh root@192.168.100.150 "ifconfig eth0" ##在192.168.100.150上执行命令“ifconfig eth0”查看ip地址

3)删除相关信息,为ssh脚本测试做准备:

192.168.100.100上:rm -rf /root/.ssh/known_hosts

192.168.100.150上:rm -rf /root/.ssh

二.编写脚本批量操作主机名:

1.需求描述:

1)修改主机名:

将192.168.100.150的主机名修改为“www.linuxfan.cn”

将192.168.100.151的主机名修改为“ca.linuxfan.cn”

将192.168.100.152的主机名修改为“db.linuxfan.cn”

2)复制安全优化脚本“security.sh”到每台服务器上并执行。

3)security.sh要求实现:配置yum及yum更新系统,删除不必要的用户,关闭不必要的服务,设置防火墙默认规则,优化ssh配置,创建admin用户、初始密码123123并设置下次admin登录时必须修改密码且限制只允许该用户使用su命令,通过tcp wrapper设置只有192.168.100.100等登录。

2.编写脚本:

1)编写安全优化脚本:

vi security.sh

#!/bin/bash

相关知识学习完成后完成

useradd admin

echo 123123 |passwd --stdin admin

:wq

2)编写批量操作脚本:

[root@ns bin]# cat ssh-changename.sh

#!/bin/bash

#by linuxfan.cn 2016-9-24

##set variable

export PRE="192.168.100."

export PW="123123"

export HNF="/etc/sysconfig/network"

#create and security ssh pair key for ssh connect.

for i in {150,151,152};do

/usr/bin/expect <<EOF

spawn ssh-copy-id root@$PRE$i

expect {

"(yes/no)?" { send "yes\r"; exp_continue }

"password:" { send "$PW\r" }

}

interact

expect eof

EOF

export CMD="ssh root@$PRE$i"

##change hostname.

ping -c 2 $PRE$i &>/dev/null

SETVAL=$?

if [ $i -eq 150 ] && [ $SETVAL -eq 0 ];then

$CMD "sed -i 's/^HOST.*/HOSTNAME=www.linuxfan.cn/g' $HNF "

##create test file and make dir.

$CMD "touch /tmp/public-key-test.txt;mkdir -p /root/bin" &>/dev/null

##copy security.sh to host and exec it.

scp /root/bin/security.sh root@$PRE$i:/root/bin &>/dev/null

$CMD "source /root/bin/security.sh" &>/dev/null

elif [ $i -eq 151 ] && [ $SETVAL -eq 0 ];then

$CMD "sed -i 's/^HOST.*/HOSTNAME=ca.linuxfan.cn/g' $HNF "

##create test file and make dir.

$CMD "touch /tmp/public-key-test.txt;mkdir -p /root/bin" &>/dev/null

##copy security.sh to host and exec it.

scp /root/bin/security.sh root@$PRE$i:/root/bin &>/dev/null

$CMD "source /root/bin/security.sh" &>/dev/null

elif [ $i -eq 152 ] && [ $SETVAL -eq 0 ];then

$CMD "sed -i 's/^HOST.*/HOSTNAME=mysql.linuxfan.cn/g' $HNF "

##create test file and make dir.

$CMD "touch /tmp/public-key-test.txt;mkdir -p /root/bin" &>/dev/null

##copy security.sh to host and exec it.

scp /root/bin/security.sh root@$PRE$i:/root/bin &>/dev/null

$CMD "source /root/bin/security.sh" &>/dev/null

else

echo "$PRE$i is down, Please check and try again."

exit 1

fi

done

[root@ns bin]#

3)测试:

分别在三台主机上查看:

id admin

cat /etc/sysconfig/network

转载于:https://blog.51cto.com/liuqicheng/1874393

lqc_shell批量操作linux主机相关推荐

  1. linux如何添加route,Linux主机添加路由 route(示例代码)

    近期小乱我使用ansible批量部署设备接入到日志审计系统时,发现执行脚本后,日志服务器端仍未收到Linux主机上传的syslog:排查后发现故障原因是主机的路由未放通. 在主机上添加路由,指令比较简 ...

  2. Xshell实现Windows上传文件到Linux主机

    为什么80%的码农都做不了架构师?>>>    1.使用我们常用的Xshell登录工具,新建立一个远程会话,填写ip地址及用户名密码后,选择最下面的ZMODEM,填写下载的路径,加载 ...

  3. zabbix3 通过snmpv3监控linux主机

    一.zabbix 3 通过snmp v3监控linux主机 原因是第三方系统,无法安装zabbix客户端,只能通过snmp 协议来监控 深信服: 在AC和SSL_×××等设备中,SNMP默认是开启的, ...

  4. 如何修改Linux主机名

    Linux 下什么都比较麻烦,就连修改主机名也不例外.我们就下文说一下具体方法. Linux 安装好后,其默认的主机名是 localhost.修改 Linux 主机名需要3步. 使用 hostname ...

  5. Linux主机WordPress伪静态设置方法

    WordPress实现伪静态利于搜索引擎收录,但有不少新人朋友还是始终无法成功设置WordPress伪静态. WordPress已经给出了几种URL伪静态形式,但都不很理想,我们希望的URL形式为: ...

  6. Putty自动登陆远程Linux主机

    1. 生成公钥和密钥 verdana@hostname:~$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file ...

  7. 如何利用webmin在Linux主机中添加网站

    Linux系统因其高效稳定而受到广大用户的推崇与青睐,然后其管理的复杂性也使很多用户望而却步,动弹不得.为了降低 Linux系统的管理难度,更有效方便的使用该系统,我司所有Linux主机或VPS系统均 ...

  8. 某linux主机的/etc/rc.d/rc.inet1文件中有如下语句,请修正错误,并解释其内容。

    某Linux主机的/etc/rc.d/rc.inet1文件中有如下语句,请修正错误,并解释其内容. /etc/rc.d/rc.inet1: -- ROUTE add –net default  gw ...

  9. 转 使用putty从linux主机上面往windows主机下面拷贝文件

    更新一下,把putty的包解压以后,想要在dos窗口中直接使用,必须把putty解压的文件的路径添加到环境变量中,这样使用起来就会非常简单了. 郁闷了好久,终于搞定了putty的上传下载文件命令psc ...

最新文章

  1. qcolor文字生成颜色
  2. erp二次开发有出路吗_ERP的真正技术瓶颈:详细生产排程!
  3. 2017年我国智能卡行业市场现状及发展趋势分析
  4. js function如何传入参数未字符串_JavaScript 学习之路- JS 小测验
  5. 微信小程序获取用户信息以及唯一openid
  6. SAP UI5 应用读取 CSRF token 的 HTTP head 请求逻辑解析
  7. zblog php 标题优化,Zblog分类页标题重复的优化 - 张力博客
  8. javq接口_Java为什么要使用接口_java接口怎么使用
  9. Zigbee 电动智能窗帘系统 解决方案
  10. MscTeX警告Package fontspec Warning: Font “Songti SC Light“ does not contain requested(fontspec)的解决
  11. hutool的定时任务不支持依赖注入怎么办_可调度定时任务在SpringBoot中的实践
  12. c how to program; 习题:3.25 编写一个利用循环打印表格数据的程序.
  13. 什么是句柄/底层绘图函数
  14. NLP - 结巴分词 词云
  15. firebug2.0.7 下载
  16. MySQL 计算年龄
  17. 从程序员到项目经理(28):该死的结果导向(只看结果,不问过程到底行不行?)
  18. 常用计量单位及其换算
  19. oracle分区缺点,ORACLE的五种表的优缺点概述
  20. 使用Docker-compose 编排Maximo容器环境

热门文章

  1. Ajax技术网站赏析
  2. 强悍的Spring之spring validation
  3. Spring——Spring整合MyBatis
  4. Hive(2):Apache Hive 安装部署
  5. ***测试第一弹:信息刺探
  6. dcn网络与公网_电信运营商DCN网络的演变与规划方法(The evolution and plan method of DCN)...
  7. 转载 在windows下系统硬盘安装Fedora20
  8. 日志审计(启明设备)
  9. 将Qt QCheckBox 默认选中样式改为对号选中
  10. Latex解决eps不能导入的问题