练习环境:

(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/nullif [ $? -eq 0 ]thenecho "压缩包打包完成"elseecho "压缩包打包失败请检查"fi
}
#=========================================
#function-->Nmap_ip 扫描网段内开启的主机
#=========================================
Nmap_ip()
{[ -f /mydate/ip.txt ]if [ $? -eq 0 ]thencat /dev/null >/mydate/ip.txtelsetouch /mydate/ip.txtfinmap -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 << EOFset time 20spawn scp /tmp/lyj.tar.bz2 root@$line:/tmp/sjjyexpect {"*yes/no*"{ send "yes\r";exp_continue }"*password:"{ send "aixocm\r"} }expect eof
EOF
) &>/dev/nullif [ $? -eq 0 ]thenecho "复制文件到$line成功!"else echo "复制文件到$line失败!"fi
done
}Tar_etc
Nmap_ip
Scp_ip

转载于:https://www.cnblogs.com/snsdzjlz320/p/5620597.html

[shell实例]——用脚本实现向多台服务器批量复制文件(nmap、scp)相关推荐

  1. linux两台服务器间复制文件scp

    换服务器或添加服务器时常会用到两台服务器之间复制文件,这个时候就可以使用scp命令. scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是 ...

  2. xcopy两台服务器之间复制文件,无效驱动器规格

    在同一个局域网内两台服务器上复制图片文件,脚本文件如下: @echo off net use \\10.8.20.200\ipc$ test /user:Administrator xcopy \\1 ...

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

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

  4. 使用scp把另外一台服务器上的文件夹/文件拷贝到当前服务器

    目的:把另外一台服务器上的文件夹拷贝到当前服务器上 一.复制文件夹 (1)从远端服务器将文件夹拷回当前服务器 # scp -r 远端服务器账号@IP:源目录 目标路径 scp -r cqfnenu@X ...

  5. 两台linux之间互传php脚本,linux下两台服务器实现同步的方法

    本文主要和大家分享linux下实现两台服务器实时同步方法介绍,假设两个服务器:192.168.0.1 源服务器 有目录 /opt/test/和192.168.0.2 目标服务器 有目录 /opt/ba ...

  6. 使用sersync实现多台服务器实时同步文件

     一.Sersync项目介绍 项目地址:http://code.google.com/p/sersync/ 我们常用到的是rsync+inotify来对服务器进行实时同步,其中inotify用于监控文 ...

  7. 实现linux多台服务器间目录文件同步

    由于平台要上负载均衡,后面有4个emc节点,每次更新系统都比较麻烦,所以这里记录一下收集到的一个看着靠谱的同步方案 出处:Linux中文件实时同步 - 刘新元 - 博客园 注意:看着靠谱,暂时没有实验 ...

  8. 两台服务器双向同步文件,远程同步文件 两台服务器上

    远程同步文件 两台服务器上 内容精选 换一换 将文件上传至Windows云服务器一般会采用MSTSC远程桌面连接的方式.本节为您介绍本地Windows计算机通过远程桌面连接,上传文件至Windows云 ...

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

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

最新文章

  1. 什么是JAVA内容仓库(Java Content Repository)(3)
  2. linux内核中等待队列
  3. Java开发学习--MongoDB
  4. VS2010中使用正则表达式替换时无法使用回车符的解决方法
  5. springMVC 几种页面跳转方式
  6. 习惯的力量之三冰山一角
  7. wxWidgets:wxMaximizeEvent类用法
  8. Python 动态添加类方法
  9. python知识点查阅
  10. sql azure 语法_将SQL工作负载迁移到Microsoft Azure:服务选择
  11. 使用@selector模仿代理功能降低代码耦合度
  12. Atitit codeblock c++开发环境建立attilax总结
  13. shell小技巧(五)把以abc开头的下一行以def结尾的两行替换成douyu
  14. 算法与数据结构学习路线
  15. CollectionView的HeaderView头视图悬停
  16. 猜年龄python实现
  17. Xpoded模块开发教程
  18. 关于OneDrive一直显示“正在登陆”的一种可能解决方法
  19. 分支定界法--学习笔记
  20. 让自己对bff层有个了解--服务于前端的后端

热门文章

  1. SMTPDiag 诊断工具
  2. B - Linear Algebra Test————只给思路
  3. Python中最好用的命令行解析工具:argparse
  4. htop 比top更好用的top
  5. phpStudy for Linux (lnmp+lamp一键安装包)
  6. HDU 3038 How Many Answers Are Wrong
  7. maven 简易入门笔记
  8. 装完Windows 7后开启硬盘AHCI模式的方法
  9. Android背景渐变色(shape,gradient)
  10. 算法----------字符串相乘(Java 版本)