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

最近工作中有这样一个需求,需要将A服务器上的文件传到B服务器。

本来想用Java开发,但一想Java开发周期长,应对这样一个小需求没必要用Java,最后选择了Shell脚本,相关代码如下:

 1 #!/bin/bash
 2
 3 function error_exit {
 4   echo "$1" 1>&2
 5   exit 1
 6 }
 7
 8 # 本地目录(可修改项)
 9 sourcePath=/opt/file
11 # 远程服务器IP,端口,目录(可修改项)
12 targetIp=192.168.1.100
13 targetPort=22
14 targetPath=/opt/file
16 # 间隔多久扫描一次目录(可修改项)
17 sleepTime=300
18
19
20 while true
21 do
22   nowTime=`date ‘+%Y-%m-%d %H:%M:%S‘`
23   echo "$nowTime - start scan dir files..."
24   curday=`date +%Y%m%d`
25   # 创建目录
26   targetDatePath="$targetPath/$curday"
27   ssh -p $targetPort $targetIp "[ -d $targetDatePath ]" >/dev/null 2>&1
28   if [ $? != 0 ]
29   then
30     echo "$nowTime - auto create remote dir $targetDatePath ..."
31     ssh -p $targetPort $targetIp "mkdir $targetDatePath" || error_exit "$nowTime - Line number:$LINENO ,create remote dir failed, exit..."
32   fi
33
34   for file in $(find $sourcePath/$curday -name "*.xml")
35   do
36     scp -P $targetPort $file $targetIp:$targetDatePath || error_exit "$nowTime - Line number:$LINENO ,scp file failed, exit..."
37
38     rm -rf $file
39   done
40   echo "$nowTime - end scan dir files..."
41   sleep $sleepTime
42 done

指定本地目录,本地目录下是以日期格式为目录名的一系列子目录,扫描出日期目录下的所有xml文件;

传输到远程服务器,远程目录下如果没有对应的日期目录则创建,有就不创建,并且5分钟(可配置)扫描一次目录;

时间: 2024-08-26 18:46:33

两台Linux服务器之间的文件传输的相关文章

两台Linux机之间传送文件

最近实验室里接管了一台服务器,经常需要用到服务器与自己主机之间进行文件传输,因此,在此介绍一下两台Linux主机之间的一些操作,方便后来者. 1. Linux.Windows主机远程访问Linux服务器: 在服务器上安装vnc server,在客户端机安装vnc viewer,然后参照一些教程做就可以了. 2. 两台Linux主机进行文件上传与文件下载. 为了方便描述,我们称服务器为Linux1,我的主机为Linux2. 2.1 下面我们介绍如何从Linux1 拷贝文件回来到本地PC Linux

scp采用无密码在两台linux服务器之间传输数据

一.root用户: 1. 在主机A上执行如下命令来生成配对密钥: ssh-keygen -t rsa 按照提示操作,注意,不要输入passphrase.提示信息如下 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa):  Enter passphrase (empty for no passphrase):  Enter same passphrase ag

两台Linux主机之间文件的复制

使用scp命令可以实现两台Linux主机之间的文件复制,基本格式是: scp [可选参数] file_source file_target 1. 复制文件 命令格式: scp local_file [email protected]_ip:remote_folderscp local_file [email protected]_ip:remote_filescp local_file remote_ip:remote_folderscp local_file remote_ip:remote_

两台Linux系统之间传输文件的几种方法

scp传输 当两台LINUX主机之间要互传文件时可使用SCP命令来实现 scp传输速度较慢,但使用ssh通道保证了传输的安全性 复制文件 将本地文件拷贝到远程 scp 文件名 –用户名@计算机IP或者计算机名称:远程路径 从远程将文件拷回本地 scp –用户名@计算机IP或者计算机名称:文件名 本地路径 命令格式 scp local_file [email protected]_ip:remote_folder 或者 scp local_file [email protected]_ip:rem

linux服务器之间传递文件-scp命令

linux服务器之间传递文件: 从远程机器复制文件到本地服务器的目录下: scp -r [email protected]远程机器的地址:要复制的文件目录 本地的目录 例:从147往221上复制147上的tomcat目录:scp -r [email protected]:/home/tomcat /home 不直接通过xftp传递的原因是:scp命令速度超快 原文地址:https://www.cnblogs.com/Suntree/p/11552528.html

两台Linux服务器在局域网之间传输文件

1.1 实验环境: 服务器操作系统:CentOS6.7=192.168.24.37 客户端操作系统:CentOS6.7=192.168.24.36 虚拟机:VMware Workstation 1.2 实验背景 从一台服务器上的文件远程复制到另一台服务器上的方法很多,今天在这里sky采用Linux scp命令来完成此任务.即从服务器端拷贝一份源码文件"mysql-5.6.20.tar.gz"到客户端下. 1.3 实验步骤 scp –r 远程用户名 @IP 地址 : 文件名  本地目录

在两台linux服务器上传输文件scp

将107服务器上的ins.war传到38服务器指定目录: scp /gxxj/apache-tomcat-7.0.78-ins/ins.war [email protected]:/data/ 将107服务器上的ins.war传到45服务器指定目录: scp /gxxj/apache-tomcat-7.0.78-ins/ins.war [email protected]:/var/tomcat-7/ 将38上的Tomcat文件夹移到45机器上: scp -r /data/apache-tomca

对拷 使用scp命令在两台linux上对拷文件或者文件夹

以前一直是在服务器上tar打包压缩,下载到本地电脑上,再上传到另外一台服务器上,再解压. 其实使用scp命令就可以直接对拷文件或者文件夹了. scp就是secure copy,是用来进行远程文件拷贝的.数据传输使用ssh1,并且和ssh1使用相同的认证方式,提供相同的安全保证.与rcp不同的是,scp会要求你输入密码如果需要的话. 最简单的应用如下:  scp  本地用户名@IP地址:文件名1   远程用户名@IP地址:文件名2 [本地用户名@IP地址:] 可以不输入,可能需要输入远程用户名所对

两台linux服务器器同步目录脚本

在集群环境中,在打补丁,或安装新软件后,经常需要同步目录. 下面我做了一个脚本,用于完成这个过程. 因为没有在两台机器间做ssh互信,因此,执行过程中需要输入远程机器密码. #!/bin/bash #author:wjf #date:2015/06/01 #desc:同步一台机器上的一个文件夹至远程机器,可用于集群环境中的代码同步 #使用限制:1.同步文件夹路径中不允许出现空格 # 2.远程机器中同步文件夹的上层路径必须手动检查建立 v_tongbu_dir=/tmp/wjf/ #-------