मुझे एक वेबसाइट को मिरर करने और एक अलग डोमेन नाम के तहत कॉपी को तैनात करने की आवश्यकता है। मिररिंग प्रक्रिया सभी स्वचालित होनी चाहिए, ताकि मैं नियमित रूप से कॉपी को अपडेट कर सकूं cron
।
दर्पण एक वास्तविक दर्पण नहीं होना चाहिए, लेकिन यह स्थिर प्रतिलिपि होना चाहिए, उदाहरण के लिए एक विशिष्ट समय में साइट का स्नैपशॉट, इसलिए मुझे लगता है wget
कि फिट हो सकता है।
अब तक, मैं मूल साइट की एक प्रति प्राप्त करने के लिए निम्नलिखित स्क्रिप्ट के साथ आया हूं:
#!/bin/bash
DOMAIN="example.com"
cd /srv/mirrors
TMPDIR=$(mktemp -p . -d)
cd "${TMPDIR}"
wget -m -p -E --tries=10 --convert-links --retry-connrefused "${DOMAIN}"
cd ..
rm -rf oldcopy
mv "${DOMAIN}" oldcopy
mv "${TMPDIR}/${DOMAIN}" "${DOMAIN}"
rmdir "${TMPDIR}"
परिणामी प्रति को फिर से नए डोमेन नाम के तहत Nginx द्वारा आपके लिए लाया जाता है, एक स्थानीय स्थैतिक साइट के लिए एक सरल कॉन्फ़िगरेशन के साथ, और यह काम करने लगता है।
समस्या यह है कि मूल सर्वर उन वेब पेजों का निर्माण करता है जिनमें आंतरिक लिंक होते हैं, तब भी जब वे आंतरिक संसाधनों से जुड़ते हैं। उदाहरण के लिए एक पृष्ठ https://example.com/page1
शामिल है
<link rel="stylesheet" href="https://example.com/style.css">
<script src="https://example.com/ui.js"/>
और इतने पर (यह वर्डप्रेस है)। कोई भी तरीका मैं उस व्यवहार को नहीं बदल सकता। wget
फिर स्थानीय ब्राउज़िंग के लिए उन लिंक को परिवर्तित नहीं करता है, क्योंकि वे निरपेक्ष हैं (या, कम से कम, मुझे लगता है कि इसका कारण है)।
EDIT: वास्तविक डोमेन नाम assodigitale.it है, हालांकि मुझे एक स्क्रिप्ट की आवश्यकता है जो विशेष डोमेन की परवाह किए बिना काम करती है, क्योंकि मुझे कुछ अन्य डोमेन के लिए भी इसकी आवश्यकता होगी।
क्या मैं wget
उन लिंक को नए डोमेन नाम में परिवर्तित कर सकता हूं ?
-k
, जो कि जैसा है वैसा ही है --convert-links
। समस्या यह है कि यह पूर्ण लिंक को परिवर्तित नहीं कर रहा है, मुझे लगता है क्योंकि वे पूर्ण हैं।
wget -k
लिंक को उन पृष्ठों में परिवर्तित करना चाहिए जिन्हें आपने किसी रिश्तेदार लिंक पर डाउनलोड किया है। यह काम क्यों नहीं करता है? क्या आप एक उदाहरण प्रदान कर सकते हैं?