lqc_shell批量操作linux主机
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主机相关推荐
- linux如何添加route,Linux主机添加路由 route(示例代码)
近期小乱我使用ansible批量部署设备接入到日志审计系统时,发现执行脚本后,日志服务器端仍未收到Linux主机上传的syslog:排查后发现故障原因是主机的路由未放通. 在主机上添加路由,指令比较简 ...
- Xshell实现Windows上传文件到Linux主机
为什么80%的码农都做不了架构师?>>> 1.使用我们常用的Xshell登录工具,新建立一个远程会话,填写ip地址及用户名密码后,选择最下面的ZMODEM,填写下载的路径,加载 ...
- zabbix3 通过snmpv3监控linux主机
一.zabbix 3 通过snmp v3监控linux主机 原因是第三方系统,无法安装zabbix客户端,只能通过snmp 协议来监控 深信服: 在AC和SSL_×××等设备中,SNMP默认是开启的, ...
- 如何修改Linux主机名
Linux 下什么都比较麻烦,就连修改主机名也不例外.我们就下文说一下具体方法. Linux 安装好后,其默认的主机名是 localhost.修改 Linux 主机名需要3步. 使用 hostname ...
- Linux主机WordPress伪静态设置方法
WordPress实现伪静态利于搜索引擎收录,但有不少新人朋友还是始终无法成功设置WordPress伪静态. WordPress已经给出了几种URL伪静态形式,但都不很理想,我们希望的URL形式为: ...
- Putty自动登陆远程Linux主机
1. 生成公钥和密钥 verdana@hostname:~$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file ...
- 如何利用webmin在Linux主机中添加网站
Linux系统因其高效稳定而受到广大用户的推崇与青睐,然后其管理的复杂性也使很多用户望而却步,动弹不得.为了降低 Linux系统的管理难度,更有效方便的使用该系统,我司所有Linux主机或VPS系统均 ...
- 某linux主机的/etc/rc.d/rc.inet1文件中有如下语句,请修正错误,并解释其内容。
某Linux主机的/etc/rc.d/rc.inet1文件中有如下语句,请修正错误,并解释其内容. /etc/rc.d/rc.inet1: -- ROUTE add –net default gw ...
- 转 使用putty从linux主机上面往windows主机下面拷贝文件
更新一下,把putty的包解压以后,想要在dos窗口中直接使用,必须把putty解压的文件的路径添加到环境变量中,这样使用起来就会非常简单了. 郁闷了好久,终于搞定了putty的上传下载文件命令psc ...
最新文章
- qcolor文字生成颜色
- erp二次开发有出路吗_ERP的真正技术瓶颈:详细生产排程!
- 2017年我国智能卡行业市场现状及发展趋势分析
- js function如何传入参数未字符串_JavaScript 学习之路- JS 小测验
- 微信小程序获取用户信息以及唯一openid
- SAP UI5 应用读取 CSRF token 的 HTTP head 请求逻辑解析
- zblog php 标题优化,Zblog分类页标题重复的优化 - 张力博客
- javq接口_Java为什么要使用接口_java接口怎么使用
- Zigbee 电动智能窗帘系统 解决方案
- MscTeX警告Package fontspec Warning: Font “Songti SC Light“ does not contain requested(fontspec)的解决
- hutool的定时任务不支持依赖注入怎么办_可调度定时任务在SpringBoot中的实践
- c how to program; 习题:3.25 编写一个利用循环打印表格数据的程序.
- 什么是句柄/底层绘图函数
- NLP - 结巴分词 词云
- firebug2.0.7 下载
- MySQL 计算年龄
- 从程序员到项目经理(28):该死的结果导向(只看结果,不问过程到底行不行?)
- 常用计量单位及其换算
- oracle分区缺点,ORACLE的五种表的优缺点概述
- 使用Docker-compose 编排Maximo容器环境
热门文章
- Ajax技术网站赏析
- 强悍的Spring之spring validation
- Spring——Spring整合MyBatis
- Hive(2):Apache Hive 安装部署
- ***测试第一弹:信息刺探
- dcn网络与公网_电信运营商DCN网络的演变与规划方法(The evolution and plan method of DCN)...
- 转载 在windows下系统硬盘安装Fedora20
- 日志审计(启明设备)
- 将Qt QCheckBox 默认选中样式改为对号选中
- Latex解决eps不能导入的问题