如何才能将最新的文件从一台 Unix 服务器传输到另一台 Unix 服务器?
我已经通过 SFTP 连接到服务器 2,并尝试应用 for 循环来检查时间戳,但这不起作用:
sftp $SERVER2 << !EOF
cd $Server2_FILE_LOCATION
echo Pwd File location: $pwd
LastUpdatedTS=$(grep "value of TimeStamp is" /root/airtelSnD/BoTreeScript/BotreeLastFileTS.txt | cut -d'=' -f2)
echo 1
for file in mad_*.*
do
CurrentFileTS=$(stat -c %Y $file |awk '{print strftime( "%Y%m%d%H%M%S", $1 )}')
echo 2
echo TS of last updated file is : $LastUpdatedTS
echo value CurrentFileTS is $CurrentFileTS
echo 3
if [[ $CurrentFileTS -gt $LastUpdatedTS ]]
then
echo if......
mget $file $DESTINATION_SERVER
echo value of TimeStamp is=$CurrentFileTS > $LASTFILE_TS
else
echo else...
fi
done
quit
!EOF
答案1
答案2
Rsync(或 Unison)是最好的
另一个解决方案是使用find
find . -name 'mad_*' -newer last_update -exec sftp ... {} \;
touch last_update