[shell实例]——用脚本实现向多台服务器批量复制文件(nmap、scp)
练习环境:
(1)所有服务器将防火墙和selinux关闭
(2)所有服务器的root密码设置为aixocm
(3)所有服务器都为10.0.100.*网段,并保证能够和其它主机通信
(4)所有服务器确保sshd服务已经启动(开放默认的22端口)
脚本要求实现:
将本机/etc目录下以conf为扩展名的文件打包压缩为tar.bz2,然后将此文件复制一份到10.0.100.1-->10.0.100.254地址段上所有开启的主机,具体路径为/tmp/sjjy/文件。在使用scp复制时无需手动输入密码。
脚本的大概思路:
(1)Tar_etc( )函数:实现对/etc下所有*.conf目录的打包,并判断是否打包成功。
(2)Nmap_ip( )函数:实现扫描已开启的主机。用nmap命令实现。并将这些主机IP写到/mydate/ip.txt文件中。
(3)Scp_ip( )函数:实现将压缩包发送到各个主机的指定目录下。 利用了#expect命令来实现的输入。
#!/bin/bash
#============================================
#function-->Tar_etc 打包/etc/*.conf下的文件
#============================================
Tar_etc()
{
tar jcvf /tmp/lyj.tar.bz2 /etc/*.conf &> /dev/null
if [ $? -eq 0 ]
then
echo "压缩包打包完成"
else
echo "压缩包打包失败请检查"
fi
}
#=========================================
#function-->Nmap_ip 扫描网段内开启的主机
#=========================================
Nmap_ip()
{
[ -f /mydate/ip.txt ]
if [ $? -eq 0 ]
then
cat /dev/null >/mydate/ip.txt
else
touch /mydate/ip.txt
fi
nmap -n -sP 10.0.100.1-254 | grep 10.0.100 | awk '{print $5}' >/mydate/ip.txt
}
#======================================
#function-->Scp_ip 复制文件到各个主机
#======================================
Scp_ip()
{
cat /mydate/ip.txt | while read line
do
(
/usr/bin/expect << EOF
set time 20
spawn scp /tmp/lyj.tar.bz2 root@$line:/tmp/sjjy
expect {
"*yes/no*"
{ send "yes\r";exp_continue }
"*password:"
{ send "aixocm\r"}
}
expect eof
EOF
) &>/dev/null if [ $? -eq 0 ]
then
echo "复制文件到$line成功!"
else
echo "复制文件到$line失败!"
fi
done
} Tar_etc
Nmap_ip
Scp_ip
[shell实例]——用脚本实现向多台服务器批量复制文件(nmap、scp)的更多相关文章
- 阿里云两台服务器之间拷贝文件命令scp
参考:云栖社区 不同的Linux之间copy文件通常有4种方法 1.ftp 2.samba服务 3.sftp 4.scp 最简单的方法就是scp,可以理解为ssh管道下的cp命令 把当前一个文件cop ...
- Linux 两台服务器之间传输文件和文件夹
今天处理一个项目要迁移的问题,突然发现这么多图片怎么移过去,可能第一时间想到的是先从这台服务器下载下来,然后再上传到另外一台服务器上面去,这个方法确实是可行,但是实在是太费时间了,今天我就教大家怎么快 ...
- Shell执行将脚本里的变量打印到指定日志文件
首先需要定位获取任务的运行日志或者报错信息,才能定位问题. 通过shell调用有些脚本的话,日志信息会打印在shell里.不过也有用户在shell里调用正常,但是到crontab调用的时候就出错并且没 ...
- 进阶!基于CentOS7系统使用cobbler实现单台服务器批量自动化安装不同版本系统(week3_day5_part2)-技术流ken
前言 在上一篇博文<cobbler批量安装系统使用详解-技术流ken>中已经详细讲解了cobbler的使用以及安装,本篇博文将会使用单台cobbler实现自动化批量安装不同版本的操作系统. ...
- 多台服务器下同步文件夹数据(rsync+inotify)
网上有很多讲解rsync+inotify的教程,我就先贴出一个来大家去看吧,基本都是类似的. http://www.jb51.net/article/57011.htm 我就强调几点,按照上面的方法配 ...
- Linux从一台linux机器复制文件到另一台linux机器
1.功能说明 scp 用于将文件/目录从一台linux系统复制到另一台linux系统.传输协议为SSH协议,保证了传输数据的安全性 其格式如下: (1)scp 本地linux系统文件路径 远程用 ...
- Centos7-两台Centos机器间复制文件
我又两台Centos机器,一台192.168.1.1:另一台192.168.1.2 现在在将192.168.1.1上的一个文件复制到192.168.1.2.登陆到192.168.1.1然后运行命令 命 ...
- 两台Linux服务器之间复制文件
一.scp 1.简介 scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的 2.软件安装 ...
- Linux 两台服务器之间传输文件
一.scp命令的使用 1.传输文件(不包括目录) 命令格式:scp 源文件路径目录/需要传输的文件 目标主机的用户名@目标主机IP/主机别名:目标主机存储目录 举个例子:scp /root/ceshi ...
随机推荐
- poj3122 pie
方法:二分. 题目意思:要过生日了,我请大家吃pie,然后人数一共是f+1(我自己).每个人的pie不能是拼接的,而且每个人的面积是一样的,这样就用二分枚举. 范围是0-最大的那块pie. 然后用每一 ...
- 带Left Join的SQL语句的执行顺序
基础的SQL执行顺序 SQL语句执行的时候是有一定顺序的.理解这个顺序对SQL的使用和学习有很大的帮助. 1.from 先选择一个表,或者说源头,构成一个结果集. 2.where 然后用where对结 ...
- ASP.NET相关技术整理
- TortoiseGit和Git操作git@osc简要说明
之前搞过一次git@osc的操作,重装系统后今天准备再次提交代码,悲剧了,我忘了之前怎么干得了,再次百度以后,终于搞定了,准备写下来,省得下次再忘了. 1.首先生成key,使用下面的工具,在Torto ...
- cassandra 之 jdbc 使用【java、scala】
1.数据库创建 参考接上文cassandra入门 http://www.cnblogs.com/piaolingzxh/p/4197833.html 2.下载jdbc驱动源码,构建jar包 源码下载地 ...
- Linux rabbitmq的安装和安装amqp的php插件
RabbitMQ是一个消息代理.它的核心原理非常简单:接收和发送消息.你可以把它想像成一个邮局:你把信件放入邮箱,邮递员就会把信件投递到你的收件人处.在这个比喻中,RabbitMQ是一个邮箱.邮局.邮 ...
- highcharts与highstock实例
highcharts实例代码 <head> <title>highcharts报表示例</title> <meta http-equiv="Cont ...
- Redux介绍及基本应用
一.Redux介绍 Redux的设计思想很简单,就两句话: Web应用是一个状态机,神力与状态是一一对应的 所有的状态,保存在一个对象里面 二.Redux基本概念和API Store Store就是 ...
- 将python2.7+django1.10部署到SAE上
首先我想说的是我为什么选择SAE呢?本人学生一枚,没钱.然后sae好像又有免费的一定限额,所以我就选了它. 期间曲折颇多,实在不是三言两语所能道情的.各种百度,谷歌,最后所幸成功了,幸哉! 主要参考了 ...
- python分片
刚刚学习,很新 >>> numbers = [1,2,3,4,5,6,7,8,9,10] >>> numbers[0:10:2] [1,3,5,7,9] >& ...