നിങ്ങൾക്കൊരു വെബ്സൈറ്റ് ഇഷ്ടമാണെങ്കിൽ, അതിന്റെ ബാക്കപ്പ് എടുക്കൂ: വെബ് ഉള്ളടക്കം ആർക്കൈവ് ചെയ്യുന്നതിനുള്ള ഒരു പ്രായോഗിക വഴികാട്ടി

നിങ്ങൾക്കൊരു വെബ്സൈറ്റ് ഇഷ്ടമാണെങ്കിൽ, അതിന്റെ ബാക്കപ്പ് എടുക്കൂ: വെബ് ഉള്ളടക്കം ആർക്കൈവ് ചെയ്യുന്നതിനുള്ള ഒരു പ്രായോഗിക വഴികാട്ടി

വിവിധ ടൂളുകൾ ഉപയോഗിച്ച് നിങ്ങളുടെ പ്രിയപ്പെട്ട വെബ് പേജുകൾ എങ്ങനെ ഫലപ്രദമായി സംരക്ഷിക്കാം എന്ന് മനസിലാക്കൂ.

വെബ് ഉള്ളടക്കത്തിന്റെ ബാക്കപ്പ് സൂക്ഷിക്കേണ്ടതിന്റെ പ്രാധാന്യം മുമ്പത്തേക്കാളേറെ പ്രസക്തമാണ്. എണ്ണമറ്റ വെബ്സൈറ്റുകൾ അപ്രത്യക്ഷമാവുകയോ അവയുടെ നയങ്ങൾ മാറ്റുകയോ ചെയ്യുന്ന സാഹചര്യത്തിൽ, നിങ്ങളുടെ പ്രിയപ്പെട്ട പേജുകൾ എങ്ങനെ ആർക്കൈവ് ചെയ്യണമെന്ന് അറിയുന്നത് വിലപ്പെട്ട വിവരങ്ങൾ നഷ്ടപ്പെടാതെ സംരക്ഷിക്കാൻ സഹായിക്കും.

എന്തുകൊണ്ട് വെബ് ഉള്ളടക്കം ആർക്കൈവ് ചെയ്യണം?

ഒരുകാലത്ത് മികച്ച ഉള്ളടക്കത്തിലേക്ക് നയിച്ചിരുന്ന ഒരു ലിങ്ക് ഇപ്പോൾ 404 error കാണിക്കുമ്പോഴുണ്ടാകുന്ന നിരാശ നമ്മളിൽ പലരും അനുഭവിച്ചിട്ടുണ്ടാകും. ഡൊമെയ്‌നുകളുടെ കാലാവധി കഴിയുന്നത് കൊണ്ടോ, പ്ലാറ്റ്‌ഫോമുകൾ പ്രവർത്തനം നിർത്തുന്നത് കൊണ്ടോ, അല്ലെങ്കിൽ വെബ്‌സൈറ്റ് നയങ്ങളിൽ മാറ്റം വരുന്നത് കൊണ്ടോ ഇത് സംഭവിക്കാം. ഒരു പേജ് ബുക്ക്‌മാർക്ക് ചെയ്‌ത് വെച്ചതുകൊണ്ട് മാത്രം കാര്യമില്ല; ലിങ്കുകൾ തകരാറിലാകാം, ഉള്ളടക്കം അപ്രത്യക്ഷമാകാം. ഭാവിയിലെ ആവശ്യങ്ങൾക്കായി നിങ്ങളുടെ പ്രിയപ്പെട്ട വെബ് ഉള്ളടക്കം സംരക്ഷിക്കപ്പെടുന്നു എന്ന് ആർക്കൈവിംഗ് ഉറപ്പാക്കുന്നു.

വെബ് ഉള്ളടക്കം ആർക്കൈവ് ചെയ്യുന്നതിനുള്ള ടൂളുകൾ

വെബ് ഉള്ളടക്കം ആർക്കൈവ് ചെയ്യുന്നതിനായി നിരവധി ടൂളുകൾ ലഭ്യമാണ്. ഇതാ മൂന്ന് ജനപ്രിയ ഓപ്ഷനുകൾ:

  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 തുടങ്ങിയ ടൂളുകൾ ഉപയോഗിക്കുന്നതിലൂടെ, നിങ്ങളുടെ പ്രിയപ്പെട്ട വെബ്സൈറ്റുകൾ ഫലപ്രദമായി ബാക്കപ്പ് ചെയ്യാനും ഭാവിയിലും അവ ലഭ്യമാണെന്ന് ഉറപ്പാക്കാനും സാധിക്കും.

നേട്ടങ്ങൾ

  • തകരാറിലായ ലിങ്കുകൾ അല്ലെങ്കിൽ കാലാവധി കഴിഞ്ഞ ഡൊമെയ്‌നുകൾ കാരണമുള്ള ഡാറ്റ നഷ്ടത്തിൽ നിന്ന് സംരക്ഷിക്കുന്നു.
  • ആർക്കൈവ് ചെയ്ത ഉള്ളടക്കത്തിലേക്ക് ഓഫ്‌ലൈൻ ആക്സസ് അനുവദിക്കുന്നു.
  • വിവരങ്ങൾ എളുപ്പത്തിൽ വീണ്ടെടുക്കുന്നതിനായി തിരയാൻ കഴിയുന്ന ഒരു ആർക്കൈവ് നൽകുന്നു.

പോരായ്മകൾ

  • സജ്ജീകരിക്കാനും ഉപയോഗിക്കാനും ചില സാങ്കേതിക അറിവ് ആവശ്യമാണ്.
  • ആർക്കൈവ് ചെയ്ത ഉള്ളടക്കത്തിന്റെ അളവ് അനുസരിച്ച് ഗണ്യമായ സ്റ്റോറേജ് സ്പേസ് ഉപയോഗിച്ചേക്കാം.
  • ബാക്കപ്പുകൾ ഉപയോഗപ്രദമാണെന്ന് ഉറപ്പാക്കാൻ കൃത്യമായ അറ്റകുറ്റപ്പണികളും പരിശോധനകളും ആവശ്യമാണ്.

ശ്രദ്ധിക്കുക

ഈ ലേഖനം വിദ്യാഭ്യാസ ആവശ്യങ്ങൾക്കുള്ളതാണ്. ഈ കമാൻഡുകൾ നടപ്പിലാക്കുമ്പോൾ പ്ലേസ്‌ഹോൾഡർ മൂല്യങ്ങൾക്ക് പകരം നിങ്ങളുടെ യഥാർത്ഥ ഡാറ്റ നൽകാൻ ശ്രദ്ധിക്കുക. വിവരങ്ങളെ ആശ്രയിക്കുന്നതിന് മുമ്പ് എല്ലായ്പ്പോഴും യഥാർത്ഥ സ്രോതസ്സുമായി ഒത്തുനോക്കി ഉറപ്പുവരുത്തുക.

പതിവായി ചോദിക്കുന്ന ചോദ്യങ്ങൾ

  • എന്താണ് വെബ് ആർക്കൈവിംഗ്? — ഭാവിയിലെ ആവശ്യങ്ങൾക്കായി വെബ് ഉള്ളടക്കം ശേഖരിക്കുകയും സൂക്ഷിക്കുകയും ചെയ്യുന്ന പ്രക്രിയയാണ് വെബ് ആർക്കൈവിംഗ്.
  • ഞാൻ എന്തിനാണ് ഒരു വെബ്‌സൈറ്റ് ബാക്കപ്പ് ചെയ്യേണ്ടത്? — ലിങ്ക് തകരാറുകൾ, ഡൊമെയ്ൻ കാലാവധി തീരൽ, അല്ലെങ്കിൽ പ്ലാറ്റ്‌ഫോം മാറ്റങ്ങൾ എന്നിവ മൂലമുള്ള വിലപ്പെട്ട വിവരങ്ങളുടെ നഷ്ടം തടയാൻ വെബ്‌സൈറ്റ് ബാക്കപ്പ് ചെയ്യുന്നത് സഹായിക്കുന്നു.
  • വെബ് ഉള്ളടക്കം ആർക്കൈവ് ചെയ്യാൻ എനിക്ക് ഏതൊക്കെ ടൂളുകൾ ഉപയോഗിക്കാം? — wget, monolith, ArchiveBox എന്നിവയാണ് ഇതിനായുള്ള ജനപ്രിയ ടൂളുകൾ.
  • ഒരു വെബ്‌സൈറ്റ് മിറർ ചെയ്യാൻ ഞാൻ wget എങ്ങനെ ഉപയോഗിക്കും? — നിങ്ങൾക്ക് ഉപയോഗിക്കാം wget --mirror , ഒപ്പം ഒരു മുഴുവൻ വെബ്‌സൈറ്റും ഡൗൺലോഡ് ചെയ്യുന്നതിനായി വിവിധ ഓപ്ഷനുകളും.
  • എന്താണ് WARC ഫോർമാറ്റ്? — വെബ് പേജുകളും അവയുമായി ബന്ധപ്പെട്ട മെറ്റാഡാറ്റയും ദീർഘകാലത്തേക്ക് സംരക്ഷിച്ചു സൂക്ഷിക്കാൻ ഉപയോഗിക്കുന്ന ഒരു ഫയൽ ഫോർമാറ്റാണ് WARC (Web ARChive).
  • JavaScript-റെൻഡർ ചെയ്ത വെബ്‌സൈറ്റുകൾ എനിക്ക് ആർക്കൈവ് ചെയ്യാൻ കഴിയുമോ? — അതെ, എന്നാൽ JavaScript കൈകാര്യം ചെയ്യാൻ കഴിയുന്ന SingleFile അല്ലെങ്കിൽ ArchiveBox പോലുള്ള ടൂളുകൾ നിങ്ങൾക്ക് ആവശ്യമായി വന്നേക്കാം.
  • എനിക്ക് ആർക്കൈവിംഗ് പ്രക്രിയ എങ്ങനെ ഓട്ടോമേറ്റ് ചെയ്യാം? — നിങ്ങളുടെ പ്രിയപ്പെട്ട വെബ്‌സൈറ്റുകളുടെ കൃത്യമായ ബാക്കപ്പുകൾ ഷെഡ്യൂൾ ചെയ്യാൻ നിങ്ങൾക്ക് 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.