问题描述:
工作中常常有一些ETL任务,如从服务器A拿文件到服务器B
这次的任务是每隔一小时去A服务器拿文件
ipix_20220818015903
ipix_20220818025908. etc
方案一:
这是同事给的方案。 他发现文件明总是ipix_yyyyMMddHH59ss.所以他的设计很简洁。
currentDate=date +"%Y%m%d%H" -d "1 hour ago"
fileName="ipix_fileName
quit
EOF
方案一的问题, 就是担心丢文件。
方案二 方案二的思路就是找一个文件记录上次落地的文件名(我觉得更好的办法是记录上次落地的文件的modified time,可是我们服务器上的sftp不支持),然后比较A服务器上的文件名是否比上次落地的大,大的话就落地到B服务器。当文件来晚了, 可以去修改这个记录上次落地的文件名的文件,使起值小于晚到的文件。 LastLoadedFeed=/nas/LastLoadFeed.txt LastLoaded="" if [ -f $LastLoadedFeed ] then LastLoaded=20220101000001 else if [ -s ]