文件传输脚本(expect+rsync)

完成此脚本,主要是为了将本地服务器上的文件同步到腾讯云跳板机,然后再中转上传到腾讯云服务器。当然这也只是初步的方案。

# vim /data/scripts/put_file.exp

#!/usr/bin/expect
########################################################################
# push local server’s file to remote server
#
# code by rocketzhang (2015.04.20)
########################################################################

if { $argc!=6 }  {
    send_user "Usage: push_file.exp localfile remoteip remoteport remoteuser remotepwd remotedir\n\n"
    exit 1
}

set localfile  [lindex $argv 0]
set remoteip   [lindex $argv 1]
set remoteport [lindex $argv 2]
set remoteuser [lindex $argv 3]
set remotepwd  [lindex $argv 4]
set remotedir  [lindex $argv 5]

set timeout 3600

spawn /usr/bin/rsync -arvPz -e "ssh -l$remoteuser -p$remoteport" $localfile $remoteip:$remotedir

expect {
    "password:" {
        send "$remotepwd\r"
        exp_continue
    }

    "yes/no)?" {
        send "yes\r"
        exp_continue
    }

    timeout {
        close
        break
    }

    eof {
        exit 0
    }
}

exit

使用方法:

/data/scripts/put_file.exp "/srv/search/searchindex/" "IP地址" "端口" "用户名" "密码" "/data/searchindex/"

然后加到crontab中,定期同步就OK!!!

时间: 2024-08-25 05:45:56

文件传输脚本(expect+rsync)的相关文章

AIX环境下文件远程传输复制工具--rsync安装测试

一.RSYNC简介   rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.rsync使用所谓的"rsync算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快.  rsync的基本特点如下:1.可以镜像保存整个目录树和文件系统:2.可以很容易做到保持原来文件的权限.时间.软硬链接等:3.无须特殊权限即可安装:4.优化的流程,文件传输效率高:5.可以使用

远程文件传输工具sftp、scp、rsync

一.scp 格式 scp [options] [[email protected]]host : /sourcefile /destpathscp [options] /sourcefile [[email protected]]host:/destpath 常用选项:- -C: 压缩数据流-r: 递归复制-p: 保持原文件的属性信息(有时会用到)-q: 静默模式-P PORT: 指明remote host的监听的端口 scp只时和临时的文件传输,其基于ssh之上,所以安全性比较有保证,但是功能

20.31 expect脚本同步文件 20.32 expect脚本指定host和要同步的文件 20.

20.31 expect脚本同步文件 20.32 expect脚本指定host和要同步的文件 20.33 构建文件分发系统 20.34 批量远程执行命令 原文地址:http://blog.51cto.com/12058686/2108318

解析rsync大文件传输慢原因以及解决方法

rsync作为一个简便的同步工具,在linux环境中应用较多.能够实现比较简单的文件或目录传输.至于配置相关部分这里不做过多的讲解. +++++++++++++++++++++++++++++++++++++++++++++++ 这里说下rsync大文件时遇到的传输慢的问题,以及应该如何合理的解决这个问题. 现实场景如下,线上环境中需要同步一个15G的文件,服务器都是千兆网卡,正常同步也就150s左右.但是线上环境中同步有时候需要一个多小时,让人很崩溃. 分析过程:开始怀疑网络问题,查了网络环境

Linux下几种文件传输命令

Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等敏感信息进行加密,因此可以有效的防止用户信息在传输的过程中被窃取,比FTP有更高的安全性.在功能方面与FTP很类似,不仅可以传输文件数据,而且可以进行远程的文件管理(如建立,删除,查看文件列表等操作).Sftp与ftp虽然只有一字之差,但基于

Linux下常用的文件传输方式介绍与比较

参考链接:http://mingxinglai.com/cn/2014/03/copy-file-in-linux/ 本文介绍了linux之间传输文件的几种方式,并通过具体实验测试了几种文件传输方式之间的传输速度.这篇文章是我一次作业的实验报告,我经常查看这个文档,所以贴出来方便自己查略. ###0. 实验环境以及实验数据 实验环境: 两台装有Ubuntu的电脑,两台电脑位于同一个局域网中,传输速度约4.1MB/s. 实验数据: 使用MySQL的日志文件(ib_logfile0)进行测试,日志文

Linux的文件传输命令总结

因为工作原因,需要经常在不同的服务器见进行文件传输,特别是大文件的传输,因此对linux下不同服务器间数据传输命令和工具进行了研究和总结.主要是rcp,scp,rsync,ftp,sftp,lftp,wget,curl. rcp rcp不是一种安全的的传输文件的方式,rcp通过rsh(rsh见下面)来执行远程命令,要使用rcp必须经过一些配置,现在rcp已经被scp取代了,常用scp来进行文件传输.要使用rcp,需要具备以下条件: (1)如果系统中有/etc/hosts 文件,应确保该文件包含要

linux下常用文件传输命令(转)

因为工作原因,需要经常在不同的服务器见进行文件传输,特别是大文件的传输,因此对linux下不同服务器间数据传输命令和工具进行了研究和总结.主要是rcp,scp,rsync,ftp,sftp,lftp,wget,curl. rcp rcp不是一种安全的的传输文件的方式,rcp通过rsh(rsh见下面)来执行远程命令,要使用rcp必须经过一些配置,现在rcp已经被scp取代了,常用scp来进行文件传输.要使用rcp,需要具备以下条件: (1)如果系统中有/etc/hosts 文件,应确保该文件包含要

运维学习之Linux系统中的文件传输、归档、压缩

不同系统之间的文件传输 1.文件归档 1. 文件归档,就是把多个文件变成一个归档文件 2. tar c ##创建 f ##指定归档文件名称 t ##显示归档文件中的内容 r ##向归档文件中添加文件 --get ##取出单个文件 --delete ##删除单个文件 x ##取出归档文件中的所有内容 -C ##指定解档目录 -z ##gz格式压缩 -j ##bz2格式压缩 -J ##xz格式压缩 2.压缩 gz gzip etc.tar ##压缩成gz格式 gunzip  etc.tar.gz #