मैं एक यूनिक्स सर्वर से दूसरे यूनिक्स सर्वर से नवीनतम फाइलें कैसे प्राप्त कर सकता हूं?


1

मैं यूनिक्स सर्वर से दूसरे यूनिक्स सर्वर पर केवल नवीनतम फाइलें कैसे प्राप्त कर सकता हूं?

मैं एसएफटीपी के माध्यम से सर्वर 2 से जुड़ा हुआ हूं और समय टिकट की जांच के लिए लूप के लिए आवेदन करने की कोशिश कर रहा हूं, जो काम नहीं कर रहा है:

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

मैं पोस्ट किए गए उत्तरों से सहमत हूं कि आपको एक उपकरण का उपयोग करना चाहिए जो इस कार्य को करने के लिए डिज़ाइन किया गया है। लेकिन अगर आप जानना चाहते हैं कि काम करने के लिए इस तरह की स्क्रिप्ट कैसे प्राप्त करें , तो उन सभी डॉलर के प्रतीकों से पहले बैकस्लैश लगाने की कोशिश करें, जो sftpपर्यावरण से एक मूल्य का उपयोग कर रहे हैं, को छोड़कर । (ऐसा लगता है $Server2_FILE_LOCATIONऔर $DESTINATION_SERVERकेवल वही हैं जो लागू होते हैं।)
स्कॉट

निम्नलिखित प्रश्न के लिए bolD का उत्तर आपको रूचि दे सकता है: scp-without-replacing-मौजूदा-मौजूदा-इन-द-डेस्टिनेशन
PetaspeedBeaver

जवाबों:


1

क्या आपने rsync की कोशिश की है ?

rsync एक ओपन सोर्स यूटिलिटी है जो तेज वृद्धिशील फाइल ट्रांसफर प्रदान करता है।

यह केवल परिवर्तित / नई फ़ाइलों को स्थानांतरित करेगा, और केवल परिवर्तित फ़ाइलों के लिए डेल्टा। इसमें विभिन्न अन्य निफ्टी विशेषताएं भी हैं

यह वास्तव में आपके कोड के साथ किसी भी मुद्दे को संबोधित नहीं करता है, लेकिन मुझे लगता है कि rsync एसएफटीपी के साथ पहिया को फिर से स्थापित करने की कोशिश करना आसान होगा।


नहीं, मेरी आवश्यकता के अनुसार मुझे किसी भी उपकरण का उपयोग नहीं करना है। मुझे इसे केवल स्क्रिप्ट के माध्यम से करने की आवश्यकता है।
मैडी

0

Rsync (या Unison) सबसे अच्छा है

एक अन्य समाधान का उपयोग करना होगा find

 find . -name 'mad_*' -newer last_update -exec sftp ... {} \;
 touch last_update
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.