यदि आप किसी वेबसाइट को पसंद करते हैं, तो उसका बैकअप लें: वेब कंटेंट को आर्काइव करने के लिए एक व्यावहारिक गाइड

यदि आप किसी वेबसाइट को पसंद करते हैं, तो उसका बैकअप लें: वेब कंटेंट को आर्काइव करने के लिए एक व्यावहारिक गाइड

विभिन्न टूल्स का उपयोग करके अपने पसंदीदा वेब पेजों को प्रभावी ढंग से सुरक्षित रखना सीखें।

वेब कंटेंट का बैकअप लेने का महत्व आज पहले से कहीं अधिक प्रासंगिक है। अनगिनत वेबसाइटों के गायब होने या अपनी नीतियों को बदलने के कारण, अपने पसंदीदा पेजों को आर्काइव करने का तरीका जानना आपको बहुमूल्य जानकारी खोने से बचा सकता है।

वेब कंटेंट को आर्काइव क्यों करें?

हममें से कई लोगों ने इस निराशा का अनुभव किया है कि जो लिंक कभी बेहतरीन कंटेंट तक ले जाता था, वह अब 404 एरर देता है। ऐसा डोमेन समाप्त होने, प्लेटफ़ॉर्म बंद होने या वेबसाइट की नीतियों में बदलाव के कारण हो सकता है। केवल किसी पेज को बुकमार्क करना ही पर्याप्त नहीं है; लिंक टूट सकते हैं और कंटेंट गायब हो सकता है। आर्काइविंग यह सुनिश्चित करती है कि आपका पसंदीदा वेब कंटेंट भविष्य के संदर्भ के लिए सुरक्षित रहे।

वेब कंटेंट को आर्काइव करने के टूल्स

वेब कंटेंट को आर्काइव करने के लिए कई टूल्स उपलब्ध हैं। यहाँ तीन लोकप्रिय विकल्प दिए गए हैं:

  1. monolith: यह कमांड-लाइन टूल सभी आवश्यक CSS, इमेज और JavaScript सहित वेब पेजों को सिंगल HTML फाइलों के रूप में सेव करता है। इससे बिना इंटरनेट कनेक्शन के आर्काइव किए गए पेज को ऑफ़लाइन देखना आसान हो जाता है।

  2. wget: एक शक्तिशाली कमांड-लाइन यूटिलिटी जो वेब से फाइलें डाउनलोड कर सकती है। यह पूरी वेबसाइटों को मिरर कर सकती है, जिससे यह स्टैटिक साइटों का बैकअप लेने के लिए उपयुक्त हो जाती है।

  3. ArchiveBox: एक ओपन-सोर्स, सेल्फ-होस्टेड टूल जो वेब कंटेंट को विभिन्न फॉर्मेट में आर्काइव करता है। यह पूरी वेबसाइटों, अलग-अलग पेजों या लिंक के संग्रह को सेव कर सकता है और आपके आर्काइव में सर्च करने के लिए एक यूज़र-फ्रेंडली इंटरफ़ेस प्रदान करता है।

सही टूल चुनना

आर्काइव करना शुरू करने से पहले, यह तय करना आवश्यक है कि आप क्या सेव करना चाहते हैं। यहाँ एक त्वरित गाइड दी गई है:

  • सिंगल पेज: उपयोग करें monolith या पूरे वेबपेज को एक स्टैंडअलोन HTML फाइल के रूप में सेव करने के लिए SingleFile ब्राउज़र एक्सटेंशन।
  • पूरी स्टैटिक साइट: उपयोग करें wget --mirror पूरी साइट को डाउनलोड करने के लिए। दीर्घकालिक संरक्षण के लिए WARC (Web ARChive) फॉर्मेट शामिल करने की सिफारिश की जाती है।
  • सर्च क्षमता के साथ दीर्घकालिक संग्रह: वेब कंटेंट का सर्च करने योग्य आर्काइव बनाने के लिए एक सेल्फ-होस्टेड ArchiveBox इंस्टेंस सेटअप करें।

वेबसाइट को मिरर करने के लिए wget का उपयोग कैसे करें

किसी वेबसाइट को मिरर करने के लिए wgetका उपयोग करते हुए, इन चरणों का पालन करें:

स्टेप 1: wget इंस्टॉल करें

यदि आपके पास wget इंस्टॉल नहीं है, तो आप इसे आसानी से जोड़ सकते हैं। macOS पर, आप इसे इंस्टॉल करने के लिए पैकेज मैनेजर का उपयोग कर सकते हैं।

स्टेप 2: एक बैकअप स्क्रिप्ट बनाएं

आप बैकअप प्रक्रिया को स्वचालित करने के लिए एक सरल स्क्रिप्ट बना सकते हैं। यहाँ एक उदाहरण स्क्रिप्ट दी गई है:

#!/usr/bin/env bash
# mirror-site.sh - backup một site tĩnh, kèm file WARC
set -euo pipefail
URL="$1"
NAME=$(echo "$URL" | sed -E 's#https?://##; s#/.*##')
DATE=$(date +%Y%m%d)
OUT="$HOME/web-archive/$NAME/$DATE"
mkdir -p "$OUT"
cd "$OUT"
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent --wait=1 --random-wait --limit-rate=500k --user-agent='Mozilla/5.0 (personal-archive)' --warc-file="$NAME-$DATE" --warc-cdx "$URL"
echo "Xong: $OUT"
du -sh "$OUT"

स्टेप 3: स्क्रिप्ट चलाएं

जिस वेबसाइट को आप आर्काइव करना चाहते हैं उसका URL पास करके स्क्रिप्ट चलाएं:

bash mirror-site.sh https://example.com

monolith के साथ अलग-अलग पेजों को आर्काइव करना

यदि आप अलग-अलग पेजों को आर्काइव करना चाहते हैं, विशेष रूप से साइटमैप वाले ब्लॉग से, तो आप monolithका उपयोग कर सकते हैं। यहाँ बताया गया है कि यह कैसे करें:

स्टेप 1: monolith इंस्टॉल करें

सुनिश्चित करें कि आपके पास monolith इंस्टॉल है। आप इसकी आधिकारिक वेबसाइट पर इंस्टॉलेशन निर्देश पा सकते हैं।

स्टेप 2: एक आर्काइविंग स्क्रिप्ट बनाएं

साइटमैप में सूचीबद्ध पेजों को आर्काइव करने के लिए यहाँ एक Python स्क्रिप्ट दी गई है:

#!/usr/bin/env python3
# archive_sitemap.py - Python 3.10+, cần: pip install requests
import hashlib
import subprocess
import sys
import time
import xml.etree.ElementTree as ET
from pathlib import Path
import requests

NS = {"sm": "http://www.sitemaps.org/schemas/sitemap/0.9"}
OUT_DIR = Path.home() / "web-archive" / "pages"

def get_urls(sitemap_url: str) -> list[str]:
    resp = requests.get(sitemap_url, timeout=30)
    resp.raise_for_status()
    root = ET.fromstring(resp.content)
    if root.tag.endswith("sitemapindex"):
        urls = []
        for loc in root.findall("sm:sitemap/sm:loc", NS):
            urls.extend(get_urls(loc.text.strip()))
        return urls
    return [loc.text.strip() for loc in root.findall("sm:url/sm:loc", NS)]

def archive(url: str) -> None:
    key = hashlib.sha1(url.encode()).hexdigest()[:12]
    target = OUT_DIR / f"{key}.html"
    if target.exists():
        print(f"[skip] {url}")
        return
    result = subprocess.run(["monolith", url, "-j", "-I", "-o", str(target)], capture_output=True, text=True, timeout=120)
    status = "ok" if result.returncode == 0 else "FAIL"
    print(f"[{status}] {url} - {target.name}")
    with open(OUT_DIR / "index.tsv", "a") as f:
        f.write(f"{key}\t{status}\t{url}\n")

if __name__ == "__main__":
    OUT_DIR.mkdir(parents=True, exist_ok=True)
    for u in get_urls(sys.argv[1]):
        archive(u)
        time.sleep(2)

स्टेप 3: स्क्रिप्ट चलाएं

स्क्रिप्ट चलाने के लिए, इस कमांड का उपयोग करें:

python3 archive_sitemap.py https://example.com/sitemap.xml

ArchiveBox के साथ ऑटोमेशन

लिंक के बड़े संग्रह के लिए, ArchiveBox बहुत मददगार हो सकता है। इसे सेटअप करने का तरीका यहाँ दिया गया है:

स्टेप 1: ArchiveBox इंस्टॉल करें

आप Docker का उपयोग करके ArchiveBox सेट अप कर सकते हैं। इसके लिए एक डायरेक्टरी बनाएं और चलाएं:

mkdir -p ~/archivebox/data
cd ~/archivebox
curl -fsSL 'https://docker-compose.archivebox.io' -o docker-compose.yml
docker compose run archivebox init --setup
docker compose up -d

आप अलग-अलग लिंक या लिंक की एक फाइल जोड़ सकते हैं:

docker compose run archivebox add 'https://example.com/article'
docker compose run archivebox add ~/links.txt

स्टेप 3: बैकअप शेड्यूल करें

आप cron job का उपयोग करके आर्काइविंग प्रक्रिया को स्वचालित कर सकते हैं। उदाहरण के लिए, प्रत्येक रविवार को सुबह 3 बजे बैकअप चलाने के लिए:

0 3 * * 0 /home/user/bin/mirror-site.sh https://example.com/blog/ /var/log/mirror.log 2>&1

निष्कर्ष

महत्वपूर्ण जानकारी को गायब होने से बचाने के लिए वेब कंटेंट को आर्काइव करना आवश्यक है। wget, monolith, और ArchiveBox जैसे टूल्स का उपयोग करके, आप अपनी पसंदीदा वेबसाइटों का प्रभावी ढंग से बैकअप ले सकते हैं और यह सुनिश्चित कर सकते हैं कि वे भविष्य में भी सुलभ रहें।

लाभ

  • टूटे हुए लिंक या समाप्त हो चुके डोमेन से होने वाले डेटा के नुकसान से बचाता है।
  • आर्काइव किए गए कंटेंट तक ऑफ़लाइन पहुंच की अनुमति देता है।
  • जानकारी को आसानी से प्राप्त करने के लिए एक सर्च करने योग्य आर्काइव प्रदान करता है।

कमियां

  • सेटअप और उपयोग करने के लिए कुछ तकनीकी ज्ञान की आवश्यकता होती है।
  • आर्काइव किए गए कंटेंट की मात्रा के आधार पर काफी स्टोरेज स्पेस की खपत हो सकती है।
  • यह सुनिश्चित करने के लिए कि बैकअप उपयोगी हैं, नियमित रखरखाव और जांच आवश्यक है।

सावधानी

यह लेख शैक्षिक उद्देश्यों के लिए है। इन कमांड्स को लागू करते समय प्लेसहोल्डर मानों को अपने वास्तविक डेटा से बदलना सुनिश्चित करें। दावों पर भरोसा करने से पहले हमेशा मूल स्रोत से उनका सत्यापन करें।

अक्सर पूछे जाने वाले प्रश्न

  • वेब आर्काइविंग क्या है? — वेब आर्काइविंग वेब कंटेंट को भविष्य में पहुंच के लिए सुरक्षित रखने हेतु उसे एकत्र और संग्रहीत करने की प्रक्रिया है।
  • मुझे किसी वेबसाइट का बैकअप क्यों लेना चाहिए? — किसी वेबसाइट का बैकअप लेना लिंक रॉट (link rot), डोमेन समाप्ति या प्लेटफ़ॉर्म परिवर्तनों के कारण बहुमूल्य जानकारी के नुकसान को रोकता है।
  • वेब कंटेंट को आर्काइव करने के लिए मैं किन टूल्स का उपयोग कर सकता हूँ? — लोकप्रिय टूल्स में wget, monolith, और ArchiveBox शामिल हैं।
  • किसी वेबसाइट को मिरर करने के लिए मैं wget का उपयोग कैसे करूँ? — आप wget --mirror का उपयोग विभिन्न विकल्पों के साथ पूरी वेबसाइट डाउनलोड करने के लिए कर सकते हैं।
  • WARC फॉर्मेट क्या है? — WARC (Web ARChive) एक फाइल फॉर्मेट है जिसका उपयोग दीर्घकालिक संरक्षण के लिए वेब पेजों और उनके संबंधित मेटाडेटा को संग्रहीत करने के लिए किया जाता है।
  • क्या मैं JavaScript-रेंडर्ड वेबसाइटों को आर्काइव कर सकता हूँ? — हाँ, लेकिन आपको SingleFile या ArchiveBox जैसे टूल्स की आवश्यकता हो सकती है जो JavaScript को संभाल सकें।
  • मैं आर्काइविंग प्रक्रिया को स्वचालित कैसे कर सकता हूँ? — आप अपनी पसंदीदा वेबसाइटों के नियमित बैकअप शेड्यूल करने के लिए cron jobs का उपयोग कर सकते हैं।
  • 3-2-1 बैकअप नियम क्या है? — 3-2-1 नियम आपके डेटा की तीन प्रतियां रखने का सुझाव देता है, दो अलग-अलग प्रकार के स्टोरेज पर, जिसमें से एक प्रति ऑफसाइट संग्रहीत हो।

टैग्स

#webdev #archiving #selfhosted #devops #backup #wget #monolith #ArchiveBox #datarecovery #webpreservation

Free field guide

Prompt-Injection Defense Checklist

The controls that actually reduce the blast radius when your app feeds untrusted text to an LLM. Enter your email — you'll get the PDF instantly, plus new posts on AI, security & Linux.