linux 批量拷贝数据脚本

最近想弄个批量传输拷贝部署远程服务器脚本

思路:1.与远程客户端建立等效性

2.拷贝数据、或者执行远程服务器命令

自动化等效性脚本如下:前提是安装expect这个包

================================================================

服务端生成自动生成rsa key

#!/usr/bin/expect
rm -rf root/.ssh/known_hosts
expect -c "
spawn ssh-keygen -t rsa
 expect {
 \"*id_rsa*\" {send \r;exp_continue}
 \"*passphrase*\" {send \r;exp_continue}
 \"*again*\" {send \r;exp_continue}
}

===============================================================

拷贝生成的key到远程服务器上

for p in $(cat /script/ip.txt)
do
ip=$(echo "$p"|cut -f1 -d":")
password=$(echo "$p"|cut -f2 -d":")
expect -c "
spawn ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]$ip 
        expect {  
                \"*yes/no*\" {send \"yes\r\"; exp_continue}  
                \"*password*\" {send \"$password\r\"; exp_continue}  
                \"*Password*\" {send \"$password\r\";}  
        }  
"  
done

其中ip.txt内容格式为如下:

192.168.1.56:123456

===============================================================

执行服务端到客户端推送命令

for h in $(cat /script/ip.txt|cut -f1 -d":")
do
ssh [email protected]$h "ls $dire"
dire="/tmp/test"
if [ $? -eq 0 ];
then
ssh [email protected]$h rm -rf "$dire"
set timeout 300
ssh [email protected]$h mkdir -p /tmp/test
fi
ssh [email protected]$h touch lgl.txt
scp /root/CentOS-5.3-x86_64-bin-DVD.iso [email protected]:/home
set timeout 300
done

===============================================================

最后脚本如下:

[[email protected] script]# cat ssh.sh
#!/usr/bin/expect
rm -rf root/.ssh/known_hosts
expect -c "
spawn ssh-keygen -t rsa
 expect {
 \"*id_rsa*\" {send \r;exp_continue}
 \"*passphrase*\" {send \r;exp_continue}
 \"*again*\" {send \r;exp_continue}
}
"
for p in $(cat /script/ip.txt)
do
ip=$(echo "$p"|cut -f1 -d":")
password=$(echo "$p"|cut -f2 -d":")
expect -c "
spawn ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]$ip 
        expect {  
                \"*yes/no*\" {send \"yes\r\"; exp_continue}  
                \"*password*\" {send \"$password\r\"; exp_continue}  
                \"*Password*\" {send \"$password\r\";}  
        }  
"  
done
for h in $(cat /script/ip.txt|cut -f1 -d":")
do
ssh [email protected]$h "ls $dire"
dire="/tmp/test"
if [ $? -eq 0 ];
then
ssh [email protected]$h rm -rf "$dire"
set timeout 300
ssh [email protected]$h mkdir -p /tmp/test
fi
ssh [email protected]$h touch lgl.txt
scp /root/CentOS-5.3-x86_64-bin-DVD.iso [email protected]:/home
set timeout 300
done

时间: 2024-10-27 19:30:08

linux 批量拷贝数据脚本的相关文章

mysql批量插入数据脚本

#!/bin/bash i=1; MAX_INSERT_ROW_COUNT=$1; while [ $i -le $MAX_INSERT_ROW_COUNT ] do mysql -uroot -proot dbname -e "insert into tablename (name,age,createTime) values ('HELLO$i',$i % 99,NOW());" d=$(date +%M-%d\ %H\:%m\:%S) echo "INSERT HELL

linux 批量安装telnet脚本

install_telnet.sh explujing=/home/install_telnet.exp      username=root                               passwd=123456                                                              iplist="192.167.1.1192.167.1.2192.167.1.3                      "    

expect 批量拷贝key文件并且批量执行简单脚本

一.expect简介 expect是一种能够按照脚本内容里面设定的方式与交互式程序进行"会话"的程序.根据脚本内容,Expect可以知道程序会提示或反馈什么内容以及 什么是正确的应答. 它是一种可以提供"分支和嵌套结构"来引导程序流程的解释型脚本语言. shell功能很强大,但是不能实现有交互功能的多机器之前的操作,例如ssh和ftp.而expect可以帮助我们来实现. 二.安装expect软件包 #yum install expect -y 注:使用expect批

六月考核:LINUX如何把数据拷贝到移动硬盘

六月考核:LINUX如何把数据拷贝到移动硬盘 1.使用Putty,远程登录到系统界面 2.使用fdisk -l 命令查看一下U盘是否有被识别到,及识别的U盘是在哪个位置 3.本次接入看到U盘的位置是/dev/sdb1 4.然后输入挂载U盘命令:mount /dev/sdb1 /mnt回车后即挂载U盘成功继续输入:cd 回车,可以查看U盘下的文件 5.接着是拷贝桌面上的5.png文件到U盘中输入命令:cp /home/user/desktop/5.png /mnt回车后等待复制完成 6.拷贝完成后

Windows下拷贝数据,校验数据一致性的脚本

脚本中使用的md5sum工具下载地址如下: http://www.pc-tools.net/win32/md5sums/ #!/usr/bin/python #coding=utf-8 import os import shutil #获取某个文件的md5值 def getmd5(dir): cmd = 'C:\\Users\\Administrator\\Desktop\\md5sum.exe' + ' ' + dir md5sum = os.popen(cmd) content = md5s

linux批量分发必会面试题,通过邮件反馈结果。

请准备三台linux机器为别为A,B,C,要求实现以下内容1.用自己的名字用户完成一把钥匙开多把锁(A,钥匙,B,C锁)的免密码登录部署场景该题在生产环境中的用途为:批量分发数据,批量发布程序代码,批量控制管理等. 大型批量管理软件pupet/saltstack2.在1题的前提下同样用自己的名字用户完成多把钥匙开一把锁(B,C钥匙,A锁)的免密码登录B--AC--A一题中我们在A创建了锁和钥匙,所以B和C要控制A就先把钥匙发给B和C,因为A本地的锁还不正常,就像A给B和C发公钥一样给自己再发一份

Linux生产服务器Shell脚本分享

Linux生产服务器Shell脚本分享 2012-6-6 86市场网 linux 作为一名Linux/unix系统管理员,我经常遇到人问这个问题:shell能做什么?PHP这么强大,为什么不用PHP来完成工作呢?其实相对于PHP这些开发语言而言,shell主要用于数据库备份(SVN备份).计划任务(crontab).服务状态监控.FTP远程备份等.对于这些任务,shell的强大是大家都公认的,这也是每一个Linux/unix系统管理员的基本之一.现在在Windows 2008里也出现了Power

Linux下Shell 备份脚本集合

说到Shell大家都不陌生,Shell是Linux下批处理脚本,类似windows下的Vbs脚本等等,能协助我们完成一些自动化的任务,我们前面也介绍了一些Shell脚本协助我们完成了一些计划任务,当然说计划任务也不对,是通过计划任务来调用shell脚本来完成一些自动化任务.废话不多说了,来点实际的,今天呢,我们主要介绍的是环境还是工作中遇到的问题,通过远程来完成一些还原任务, 1.首先是,我们需要将本地备份目录下的Weaver.proternt文件定时还原覆盖到指定目录下: 将/OAFS/Bkf

分享一个脚本建多级目录的脚本,批量复制的脚本

linux下的bash脚本,据说很简单,但是我没有学过脚本,甚至语法的书我都没看过,所以,脚本不会写,但大概能看懂啥意思,也不想刻意花大量时间去学. 这个脚本是这样的,我要在某个目录下建立很多目录,例如000,001,002,003...大概1000个,而在每一个子目录中还要建立子目录,也是000,001,002,...大概1000个,最终这些最底层目录下放文件,文件的目录大概是这样data/000/008/*.txt,现在要建立这样的目录结构,人工去建立肯定是打死也不想做的,于是想简单偷懒,从