Web Cache/Proxy (fôként Squid):
Átállnék 1.xx Squidről 2.xx-re. Tényleg le kell mindent törölnöm?!
Az az egyszerűbb megoldás!

Azonban ha mégis szeretnéd ezt megelőzni, van rá egy - nem túl szép - megoldás, melynek segítségével jelentős plusz disk hely nélkül megoldhatod a konverziót.

Fogd a régi squided, és tedd át egy nem használt portra (pl. 3100/3101). Az újat tedd a szokásos 3128/3130-ra. A régiben tiltsd le a miss_access-t és engedélyezd a PURGE metódust. Az újban állítsd be (az egyik) parentnek a régi proxyt, és add meg cache_peer_access-szel, hogy a helyi gép (localhost, vagy a saját IP-d) parentként a régi proxyt, a normál usereid meg a szokásos utat használják. Tiltsd le a helyi gépnek a direct_access-t, hogy csak a parenten mehessen a forgalom.

Ezután fogd a lentebb látható 1.2_migrate.sh programot, és irány a proxy-komplexum. A régi proxy "log" nevű file-jában van a régi proxy tartalma. Ebből csinálj egy file-t ami csak az url-eket tartalmazza, pl

 cat /var/cache/squid/log | awk '{print $6}' > content.txt
és majd ezt fogod megadni a migrate programnak.

A program az új proxyból minden URL-t lekér, amit megadsz neki, majd ezután elküld minden URL-re egy PURGE parancsot a régi proxynak, így felszabadítva a helyet. Ha mindent jól csinálsz, akkor minden URL átkerül a régi proxyból az újba, és a folyamat végén a régi proxy teljesen kiürül.

Tapasztalatom szerint az If-Modified-Since kéréseket így sem fogod megúszni, de az csak néhányszor tíz byte URL-enként. Nekem 2 nap alatt töltött át egy 2 gigás proxyt úgy, hogy közben a userek használták.

(Eredeti levél: http://hem.passagen.se/hno/squid/1.2_migrate.html )

  ===/ 1.2_migrate.sh /====
#!/bin/sh # A small shell script that can be used to migrate a 1.1.X (or earlier) # to 1.2.
if [ $# -lt 2 ]; then echo "Usage: migrate.sh url_list newport oldport [newserver oldserver]" exit 1 fi
url_list=$1 newport=$2 oldport=$3 newserver=$4 oldserver=$5 if [ -z "$oldport" ]; then oldport=3128 fi if [ -z "$newserver" ]; then newserver=localhost fi if [ -z "$oldserver" ]; then oldserver=localhost fi
# 1. Split the url_list in suitable chunks rm -f tmpurl* split "$url_list" tmpurl
for url_list in tmpurl*; do # 2. Move the cached objects to the new port echo "Getting objects" cat $url_list | ./tcp-banger2 -n 10 -h $newserver -p $newport # 3. Purge the cached objects from the old cache if [ "$oldport" != "-" ]; then echo "Purging objects" cat $url_list | awk '{print "PURGE",$0}' | ./tcp-banger2 -n 50 -h $oldserver -p $oldport fi done




Previous: Hogyan tudom kiszűrni a szemetet, reklámokat, java-vacakokat? This document is: http://localhost/var/www/cgi-bin/fom?file=189

[Search] [Appearance] [Show Edit Commands]
The Faq-O-Matic is by Jon Howell.