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

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

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

 #!/bin/bash

 function error_exit {
echo "$1" >&
exit
} # 本地目录(可修改项)
sourcePath=/opt/file
# 远程服务器IP,端口,目录(可修改项)
targetIp=192.168.1.100
targetPort=
targetPath=/opt/file
# 间隔多久扫描一次目录(可修改项)
sleepTime= while true
do
nowTime=`date '+%Y-%m-%d %H:%M:%S'`
echo "$nowTime - start scan dir files..."
curday=`date +%Y%m%d`
# 创建目录
targetDatePath="$targetPath/$curday"
ssh -p $targetPort $targetIp "[ -d $targetDatePath ]" >/dev/null >&
if [ $? != ]
then
echo "$nowTime - auto create remote dir $targetDatePath ..."
ssh -p $targetPort $targetIp "mkdir $targetDatePath" || error_exit "$nowTime - Line number:$LINENO ,create remote dir failed, exit..."
fi # 在执行命令时,捕获异常,调用error_exit函数 for file in $(find $sourcePath/$curday -name "*.xml")
do
scp -P $targetPort $file $targetIp:$targetDatePath || error_exit "$nowTime - Line number:$LINENO ,scp file failed, exit..." rm -rf $file
done
echo "$nowTime - end scan dir files..."
sleep $sleepTime
done

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

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

上一篇:xaf 如何添加logo信息


下一篇:MySQL 复制 - 性能与扩展性的基石 4:主备切换