sftp非交互式每日定时拉取增量数据文件至本地合并至存量
crontab:
30 5 * * * cd /opt/scripts/;nohup sh sftp_add.sh
功能脚本
# 功能脚本# 实现远程sftp服务器每日拉取增量文件到本地,再将本地新增文件合并入历史存量总目录# 需要安装sftp工具(yum install -y lftp)# 脚本可以拉取目录和文件均可,如场景只是拉取文件,无目录存在情况,可以mirror换成mget#!/bin/bashYESD=`date -d last-day "+%Y-%m-%d"`TOD=`date +"%Y-%m-%d"`# 取T-1用YESD,取当天用TODSH_ADDDIR="sh_$TOD"SZ_ADDDIR="sz_$TOD"USER="wangting"PASSWORD="wangting@123"SHSRCDIR="/data/$SH_ADDDIR"SZSRCDIR="/data/$SZ_ADDDIR"SHDESDIR="/data/files/bond_files/$SH_ADDDIR"SZDESDIR="/data/files/bond_files/$SZ_ADDDIR"IP="xxx.xxx.xxx.xxx"PORT="xxxxx"cd /data/# 沪市lftp -u ${USER},${PASSWORD} sftp://${IP}:${PORT} <<EOFcd /data/files/bond_files/mirror $SH_ADDDIRbyeEOFcp -rf $SHSRCDIR/* /data/sh/# 深市lftp -u ${USER},${PASSWORD} sftp://${IP}:${PORT} <<EOFcd /data/files/bond_files/mirror $SZ_ADDDIRbyeEOFcp -rf $SZSRCDIR/* /data/sz/
效果如下:
[wangting@filesftp data]$ lltotal 10drwxr-xr-x 18 dmcpapp app 23 Dec 9 16:52 bakupdrwxr-xr-x 3280 dmcpapp app 3280 Dec 11 06:33 shdrwxr-xr-x 10 dmcpapp app 10 Dec 9 17:20 sh_-12-09drwxr-xr-x 7 dmcpapp app 7 Dec 10 05:37 sh_-12-10drwxr-xr-x 20 dmcpapp app 20 Dec 11 06:32 sh_-12-11drwxr-xr-x 3 dmcpapp app 3 Dec 12 05:30 sh_-12-12drwxr-xr-x 3 dmcpapp app 3 Dec 13 05:30 sh_-12-13drwxr-xr-x 920 dmcpapp app 920 Dec 9 15:58 szdrwxr-xr-x 2 dmcpapp app 20 Dec 9 17:31 sz_-12-09drwxr-xr-x 2 dmcpapp app 2 Dec 10 05:40 sz_-12-10drwxr-xr-x 4 dmcpapp app 4 Dec 11 06:37 sz_-12-11drwxr-xr-x 2 dmcpapp app 2 Dec 12 05:35 sz_-12-12drwxr-xr-x 2 dmcpapp app 2 Dec 13 05:32 sz_-12-13
如果需要可以在脚本最后加一个删除5天前日期目录的功能,只保留5天历史数据
每天增量数据都以增量日期目录存储,并且每日增量数据对应将并入sh和sz