繁体   English   中英

仅对最新文件使用 wget 和 wput

[英]Using wget and wput for only newest files

作为背景,我需要在服务器之间传输文件,为此,我尝试编写 bash 脚本,该脚本使用 wget 仅检索最新文件并使用 wput 上传它们。

问题是我正在使用带有 -N 标志的 wget ,虽然这会下载最新的文件,但这也意味着当我开始使用 wput 时,我会上传所有文件,而不仅仅是最新的文件。 更棘手的是我必须上传到一个特定的目录,一旦上传,它们就会被移动到另一个目录,所以我不能使用我过去上传的内容作为指南。

我想要的是只上传已下载的最新文件,如果没有下载任何文件,则脚本退出。

任何有关如何实现此目的的帮助将不胜感激,我当前的代码如下:

#!/bin/bash

# Redirect stdout ( > ) into a named pipe ( >() ) running "tee"
exec > >(tee -i update_logfile.txt)
exec 2>&1

today="$(date +'%d%m%Y')"

printf "Record load started: %s\n" "$today"

echo "get records" 
wget -N ftp://[user1]:[pass1]@[ftp-server-1]/*.* -P /path/to/temp/

echo "put records" 
wput --basename=/path/to/temp/ -u  /path/to/temp/*.*  ftp://[user2]:[pass2]@[ftp-server-2]/update/

echo "upload finished" 

mail -s "Upload" my_email@domain.com < update_logfile.txt

Joesch- 简单的方法是将带有上次下载时间戳的 lastCheck 写入文件文件,并根据要上传的文件的最后修改时间检查时间戳。 如果文件比时间戳更新,请上传。 做起来应该相当简单,但请随时告诉我,我可以为您整理片段。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM