आपका प्रश्न पढ़ते समय मेरा पहला विचार था "यह एक नौकरी की तरह लग रहा है rsync! ”। दुर्भाग्य से, जबकि rsync वास्तव में एक ही सीमा में ऊंची इमारतों को छलांग लगा सकता है, यह एफ़टीपी से निपट नहीं सकता है। यदि आपके पास दर्पण तक पहुंच है, तो चीजें बहुत आसान हो जाएंगी।
यदि आप नहीं मानते हैं, तो आप दूरस्थ एफ़टीपी निर्देशिका को स्थानीय रूप से माउंट करने का प्रयास कर सकते हैं, और फिर आप सरल का उपयोग कर सकते हैं cp (से प्रेरित इस ):
कर्लफेट स्थापित करें। यदि आप एक डेबियन आधारित डिस्ट्रो पर हैं (मेरा मानना है कि आप लिनक्स का उपयोग कर रहे हैं जब से आप उल्लेख करते हैं wget ), भागो
apt-get install curlftpfs
स्थानीय माउंट पथ बनाएं
mkdir -p /mnt/myftp
गंतव्य ftp साइट का उपयोग करके माउंट करें curlftpfs
curlftpfs -o allow_other ftp://user:pass@ftp.mirror.com /mnt/myftp
उपयोग cp फ़ाइलों को कॉपी करने के लिए, इसे पास करना find एक तर्क के रूप में कमान:
cd /mnt/myftp && \
cp -v --parents `find . -type f -mtime -20` ~/foo/
स्पष्टीकरण:
संयुक्त, इन कमांड / विकल्पों में पुरानी फ़ाइलों की अनदेखी करते हुए दूरस्थ सर्वर को मिरर करने का वांछित प्रभाव होना चाहिए।
चेतावनियां:
यह अपेक्षाकृत सरलीकृत मामला परिदृश्य है। यदि आपके पास अधिक उन्नत आवश्यकताएं हैं (उन सभी को wget आप जो विकल्प छोड़ गए हैं) आप उस पर एक नज़र रखना चाहते हैं man cp या, अधिक उन्नत विकल्पों के लिए, man rsync। आप अनिवार्य रूप से एक ही काम करने में सक्षम होंगे rsync के परिणाम को पारित करके find कमांड का उपयोग करना rsync की --include-from विकल्प।
यदि आप अपने प्रश्न को अधिक विशिष्ट आवश्यकताओं (लिंक, हार्ड लिंक, टाइमस्टैम्प, उपयोगकर्ता विशेषाधिकार, निर्देशिका पुनर्संरचना और इसी तरह संरक्षित करते हुए) के साथ अपडेट करते हैं, तो मुझे उनके अनुरूप अपना उत्तर संशोधित करने में सक्षम होना चाहिए।
-c(जारी) मदद?