练习环境:

(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)的更多相关文章

  1. 阿里云两台服务器之间拷贝文件命令scp

    参考:云栖社区 不同的Linux之间copy文件通常有4种方法 1.ftp 2.samba服务 3.sftp 4.scp 最简单的方法就是scp,可以理解为ssh管道下的cp命令 把当前一个文件cop ...

  2. Linux 两台服务器之间传输文件和文件夹

    今天处理一个项目要迁移的问题,突然发现这么多图片怎么移过去,可能第一时间想到的是先从这台服务器下载下来,然后再上传到另外一台服务器上面去,这个方法确实是可行,但是实在是太费时间了,今天我就教大家怎么快 ...

  3. Shell执行将脚本里的变量打印到指定日志文件

    首先需要定位获取任务的运行日志或者报错信息,才能定位问题. 通过shell调用有些脚本的话,日志信息会打印在shell里.不过也有用户在shell里调用正常,但是到crontab调用的时候就出错并且没 ...

  4. 进阶!基于CentOS7系统使用cobbler实现单台服务器批量自动化安装不同版本系统(week3_day5_part2)-技术流ken

    前言 在上一篇博文<cobbler批量安装系统使用详解-技术流ken>中已经详细讲解了cobbler的使用以及安装,本篇博文将会使用单台cobbler实现自动化批量安装不同版本的操作系统. ...

  5. 多台服务器下同步文件夹数据(rsync+inotify)

    网上有很多讲解rsync+inotify的教程,我就先贴出一个来大家去看吧,基本都是类似的. http://www.jb51.net/article/57011.htm 我就强调几点,按照上面的方法配 ...

  6. Linux从一台linux机器复制文件到另一台linux机器

    1.功能说明 scp 用于将文件/目录从一台linux系统复制到另一台linux系统.传输协议为SSH协议,保证了传输数据的安全性 其格式如下: (1)scp  本地linux系统文件路径   远程用 ...

  7. Centos7-两台Centos机器间复制文件

    我又两台Centos机器,一台192.168.1.1:另一台192.168.1.2 现在在将192.168.1.1上的一个文件复制到192.168.1.2.登陆到192.168.1.1然后运行命令 命 ...

  8. 两台Linux服务器之间复制文件

    一.scp 1.简介 scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的 2.软件安装 ...

  9. Linux 两台服务器之间传输文件

    一.scp命令的使用 1.传输文件(不包括目录) 命令格式:scp 源文件路径目录/需要传输的文件 目标主机的用户名@目标主机IP/主机别名:目标主机存储目录 举个例子:scp /root/ceshi ...

随机推荐

  1. CSS 属性设置优先级问题

    1.多个选择器可能会选择同一个元素,有3个规则,从上到下重要性降低: !important的用户样式 !important的作者样式 作者样式 用户样式 浏览器定义的样式 2. CSS规范为不同类型的 ...

  2. Oracle笔记 三、function 、select

    Scott表下有这么几个常用的表,而且还带有数据.分别是emp.dept.salgrade: 1.查看表结构用desc desc emp; 2.空表dual,最常用的空表,如: select 2 * ...

  3. jsp页面el表达式不起作用

    web.xml中2.4版本的默认导入的standerd.jar,和jstl.jar是使用el表达式的包是启动的而2.5版本的web.xml中默认是关闭的所以在2.5的所有jsp中需要启动一下用< ...

  4. qt5.5实现 记事本程序

    最近由于要做Qt相关的毕业设计课题,以前对Qt完全不了解,对于客户端图形界面程序,也只对Windows下的MFC熟悉, 所以,由于Qt的跨平台特性和相对比较纯的C++的特点,就准备学习一下吧.这两天逛 ...

  5. js中forEach无法跳出循环?

    1. forEach() forEach() 方法从头至尾遍历数组,为每个元素调用指定的函数.如上所述,传递的函数作为forEach()的第一个参数.然后forEach()使用三个参数调用该 函数:数 ...

  6. PHP isset()与empty()的区别详解

    通过对PHP语言的学习,应该知道它是基于函数的一款HTML脚本语言. 庞大的函数库支持着PHP语言功能的实现. 有关PHP函数isset()与empty()的相关用法. PHP的isset()函数 一 ...

  7. 【Window】Tor(洋葱头路由)+Privoxy 网络实践(附带Java实例代码)

    1.背景 平时我们需要访问onion后缀的网站,需要通过Tor(The Onion Router,洋葱路由器).一般来说安装Tor Broswer就可以满足需要.但是项目我要做的是通过程序来获取oni ...

  8. 画画板--第三方开源--DrawableView

    Android上的第三方开源DrawableView支持手写,类似于写字板.DrawableView支持改变画笔颜色,画笔线条粗细,画布的手势缩放和拖曳显示部分区域.并最终支持将手绘的图保存到本地.在 ...

  9. 通过Sql语句控制SQLite数据库增删改查

    person类属性有Intenger id,String name,Intenger  age,相应的构造方法和set get方法. package com.xh.tx.dao; import jav ...

  10. Google -We’re Sorry....

    Author:KillerLegend From:http://www.cnblogs.com/killerlegend/p/3734840.html Date:2014.5.18 一大清早 一大早起 ...