[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/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)相关推荐
- linux两台服务器间复制文件scp
换服务器或添加服务器时常会用到两台服务器之间复制文件,这个时候就可以使用scp命令. scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是 ...
- xcopy两台服务器之间复制文件,无效驱动器规格
在同一个局域网内两台服务器上复制图片文件,脚本文件如下: @echo off net use \\10.8.20.200\ipc$ test /user:Administrator xcopy \\1 ...
- Linux 两台服务器之间传输文件和文件夹
今天处理一个项目要迁移的问题,突然发现这么多图片怎么移过去,可能第一时间想到的是先从这台服务器下载下来,然后再上传到另外一台服务器上面去,这个方法确实是可行,但是实在是太费时间了,今天我就教大家怎么快 ...
- 使用scp把另外一台服务器上的文件夹/文件拷贝到当前服务器
目的:把另外一台服务器上的文件夹拷贝到当前服务器上 一.复制文件夹 (1)从远端服务器将文件夹拷回当前服务器 # scp -r 远端服务器账号@IP:源目录 目标路径 scp -r cqfnenu@X ...
- 两台linux之间互传php脚本,linux下两台服务器实现同步的方法
本文主要和大家分享linux下实现两台服务器实时同步方法介绍,假设两个服务器:192.168.0.1 源服务器 有目录 /opt/test/和192.168.0.2 目标服务器 有目录 /opt/ba ...
- 使用sersync实现多台服务器实时同步文件
一.Sersync项目介绍 项目地址:http://code.google.com/p/sersync/ 我们常用到的是rsync+inotify来对服务器进行实时同步,其中inotify用于监控文 ...
- 实现linux多台服务器间目录文件同步
由于平台要上负载均衡,后面有4个emc节点,每次更新系统都比较麻烦,所以这里记录一下收集到的一个看着靠谱的同步方案 出处:Linux中文件实时同步 - 刘新元 - 博客园 注意:看着靠谱,暂时没有实验 ...
- 两台服务器双向同步文件,远程同步文件 两台服务器上
远程同步文件 两台服务器上 内容精选 换一换 将文件上传至Windows云服务器一般会采用MSTSC远程桌面连接的方式.本节为您介绍本地Windows计算机通过远程桌面连接,上传文件至Windows云 ...
- 进阶!基于CentOS7系统使用cobbler实现单台服务器批量自动化安装不同版本系统(week3_day5_part2)-技术流ken...
前言 在上一篇博文<cobbler批量安装系统使用详解-技术流ken>中已经详细讲解了cobbler的使用以及安装,本篇博文将会使用单台cobbler实现自动化批量安装不同版本的操作系统. ...
最新文章
- 什么是JAVA内容仓库(Java Content Repository)(3)
- linux内核中等待队列
- Java开发学习--MongoDB
- VS2010中使用正则表达式替换时无法使用回车符的解决方法
- springMVC 几种页面跳转方式
- 习惯的力量之三冰山一角
- wxWidgets:wxMaximizeEvent类用法
- Python 动态添加类方法
- python知识点查阅
- sql azure 语法_将SQL工作负载迁移到Microsoft Azure:服务选择
- 使用@selector模仿代理功能降低代码耦合度
- Atitit codeblock c++开发环境建立attilax总结
- shell小技巧(五)把以abc开头的下一行以def结尾的两行替换成douyu
- 算法与数据结构学习路线
- CollectionView的HeaderView头视图悬停
- 猜年龄python实现
- Xpoded模块开发教程
- 关于OneDrive一直显示“正在登陆”的一种可能解决方法
- 分支定界法--学习笔记
- 让自己对bff层有个了解--服务于前端的后端