Správa kolekcí
Uživatelé pywb-test a pywb-prod
S archivem se interaguje skrze uživatelepywb-test
a pywb-prod
. Přihlášení probíhá skrve osobního uživatele a pak se použije sudo su - pywb-test
nebo sudo su - pywb-prod
k získání terminálu pywb. Existují jen produkční kolekce, v nich vytvořené indexi a z kolekcí směřují symbolické odkazy do úložiště. Samotný pywb běží v oddělených kontejnerech, takže je možné konfigurace testovat bez vlivu na produkční prostředí. Nicméně nástroje ./collection-manager
a ./cdxj-manager
pracují jen se sdílenou reprezentací data. Pokud by bylo k dispozici dost místa, je možné vytvořit /mnt/index/collections-test
a připravit paralelní kolekce pro testování. Jelikož nástroj uchovává již vytvořené indexi v adresáři /mnt/index/cdxj-archive/
, je možné přepoužít již hotové indexy v alternativních kolekcích.
Tmux
Většina následujících nástrojů vytváří dlouhoběžící procesy. Proto je dobré používat tmux. Ten umožňuje se odpojit od terminálu aniž by byli zabit dlouhodobý proces. A je možné se k terminálu s běžícím procesem opět kdykoliv připojit.
Vytvoření nového okna v tmux
u
pywb-test@war2:~$ tmux
Odchod z Tmux terminálu bez ukončení běžících procesů.
pywb-test@war2:~$ ^b d
/// tedy zmáčknou CTRL+b a poté d.
Ukočení Tmux terminálu (všechny procesy v terminálu budou ukončeny).
pywb-test@war2:~$ exit
Přiojit se k Tmux terminálu
pywb-test@war2:~$ tmux attach
Práce s více tmux terminály
pywb-test@war2:~$ tmux ls
10: 1 windows (created Sat Jan 4 00:45:03 2025) (attached)
11: 1 windows (created Sun Jan 5 20:04:26 2025)
6: 1 windows (created Fri Jan 3 17:09:01 2025) (attached)
7: 1 windows (created Fri Jan 3 17:09:20 2025) (attached)
pywb-test@war2:~$ tmux a -t 11
Spráce Kolekcí - ./collection-manager.sh
Slouží ke správě kolekcí. Každá kolekce umožní zobrazit pouze archivní data, které do ní patří. Pokud by byli všechny data jen v jedné kolekci, nebylo by například možné oddělit celoplošné sklizně od tématických sklizní při kontrole kvality sklizně.
V praxi nástroj hledá soubory *.warc.gz|*.arc.gz
ve vybraném úložišti. A pomocí sady pravidel vytvoří kolekci pro dané archivy. V kolekci vytvoří složky archive
a indexes
. A do složky archive
vytvoří symbolické odkazy vedoucí do úložiště. Tímto způsobem pywb okamžitě vidí nové kolekce. A jakmile dojde k vytvoření indexu dané kolekce, je možné procházet jak samotnou kolekci, tak použít souhrnou kolekci /wayback/, která zobrazí všechny kolekce.
Úložiště je po řadě incidentů fragmentováno i mimo obvyklou strukturu /mnt/archiv/{05..25}
. Collection manager s touto situací umí pracovat. Pří zpracování roku úložiště má předkonfigurované cesty, kde se archivy nacházejí. P
case $param in
13)
ARCHIVE_YEAR=13
SEARCH_ROOT_DIR=/mnt/datas/178/archive13
;;
14)
ARCHIVE_YEAR=14
SEARCH_ROOT_DIR="/mnt/datas/178/archive14 /mnt/datas/178/archive14 /mnt/datas/178/archive14Serials /mnt/datas/178/Archive14NDK-part /mnt/datas/180"
;;
pywb-test@war2:~$ ./collection-manaager.sh 14
Processing Archive: 14. Mounted at /mnt/datas/178/archive14 /mnt/datas/178/archive14 /mnt/datas/178/archive14Serials /mnt/datas/178/Archive14NDK-part /mnt/datas/180. Time for coffer break.
Kolekce mají prefix ve formátu YY
, ten odkazuje na rok úložitě. Prefix snižuje šanci na kolizi názvů kolekcí, ale možnost kolizce není zcela vyloučena. Je ale možné vytvořit kolekci bez prefixu, pokud se jedná například o tématickou sklizeň napříč roky. Jde ale spojit Prezidenské volby z různých let do jedné kolekce.
pywb-test@war2:/mnt/index/collections$ ls -1 *Serials* |grep Serials
05-Serials:
06-Serials:
07-Serials:
08-Serials:
09-Serials:
10-Serials:
Jedna kolekce může obsahovat více sklizní. Například všechny sklizně obsahující název Serials nebo serials, jsou uchovány v jedné kolekci Serials pro daný rok. Např. /mnt/index/collections/05-Serials/archive/
obsahuje archivy ze sklizní 2005-12-24-serials
, 2004-05-00-serials
a 2005-06-12-serials
uložených v /mnt/archive/05/
.
IAH-20051224150339-00009-harvester.nkp.cz.arc.gz -> /mnt/archive/05/serials/2005-12-24-serials/IAH-20051224150339-00009-harvester.nkp.cz.arc.gz
NEDLIB--20051117164000-00000.arc.gz -> /mnt/archive/05/serials/2004-05-00-serials/NEDLIB--20051117164000-00000.arc.gz
neuroacta-20050617160122-00001.arc.gz -> /mnt/archive/05/serials/2005-06-12-serials/neuroacta-20050617160122-00001.arc.gz
Všechny kolekce existují v adresáři /mnt/index/collections
. Pywb umožňuje jen plochou strukturu kolekcí. Proto kolekce používají prefix roku, kde byl obsah archivován.
Příkad:
pywb-test@war2:/mnt/index/collections$ ls
05-cz 05-militaria-20041212 06-estonia 06-Serials 06-zive_servery 07-Serials
05-cz2004 05-Serials 06-harvest0 06-slovakia 07-cz2007 08-cz2008
05-cz2005 05-vysocina 06-idnes 06-slovenia 07-MICR
05-dalimil 06-cz2006 06-Ikaros 06-univerzity 07-novaBudovaNK
05-info_muni 06-czech 06-povodne 06-volby2006 07-olympiadaPraha
pywb-test@war2:/mnt/index/collections$ tree -d
.
├── 05-cz
│ ├── archive
│ └── indexes
├── 05-cz2004
│ ├── archive
│ └── indexes
├── 05-cz2005
│ ├── archive
│ └── indexes
├── 05-dalimil
│ ├── archive
│ └── indexes
├── 05-info_muni
│ ├── archive
│ └── indexes
├── 05-militaria-20041212
│ ├── archive
│ └── indexes
├── 05-Serials
│ ├── archive
│ └── indexes
├── 05-vysocina
│ ├── archive
│ └── indexes
...
Použití Collection Manager
Uživatelé pywb-test
a pywb-prod
mají přístup k nástroji collection-manager.sh
ze své domovské složky.
Vytvoření kolekce z úložiště
./collection-manaager.sh 24
Vytvoření kolekce z více úložišť
for archive in 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24; do ./collection-manaager.sh ${archive}; done
Výstup po vytváření kolekce.
pywb-test@war2:~$ for archive in 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24; do ./collection-manaager.sh ${archive}; done
Processing Year: 05
Processing Year: 06
Processing Year: 07
Processing Year: 08
Processing Year: 09
Processing Year: 10
Processing Year: 11
find: ‘/mnt/archive/11/.mmbackupCfg/prepFiles’: Permission denied
find: ‘/mnt/archive/11/.mmbackupCfg/expiredFiles’: Permission denied
find: ‘/mnt/archive/11/.mmbackupCfg/updatedFiles’: Permission denied
Processing Year: 12
Processing Year: 13
Processing Year: 14
Processing Year: 15
Processing Year: 16
Processing Year: 17
Processing Year: 18
Processing Year: 19
Processing Year: 20
Processing Year: 21
Processing Year: 22
Processing Year: 23
Processing Year: 24
pywb-test@war2:~$
Indexační nástroj ./cdxj-manager.sh
Je wrapper nástroje cdxj-indexer. Slouží k vytvoření indexu pro danou kolekci. Index je nutný pro zobrazení archivních dat. Indexování je časově náročný proces.
Nástroj nejdříve zkontroluje zda-li index pro daný archiv již neexistue v adresáři /mnt/index/cdxj-archive/
. Pokud existuje, zkopíruje již existující index do kořene adresáře kolekce /mnt/index/collections/{{collection}/
. Pokud index neexistuje, nástroj vytvoří index do kořene adresáře kolekce /mnt/index/collections/{{collection}/
. Zda-li byl index vytvořen nebo zkopírován je zaznamenán do logu /mnt/index/collections/{{collection}/${date -u --iso-8601}.log
.
V logu je možné zjistit živá data z probíhající indexace.
pywb-test@war2:/mnt/index/collections$ tail -f 05-cz/2025-01-05.log
[2025-01-05T20:29:11+00:00] Processing /mnt/index/collections/05-cz/archive/NEDLIB--20051122211225-00000.arc.gz into /mnt/index/collections/05-cz/NEDLIB--20051122211225-00000.arc.gz.cdxj
[2025-01-05T20:29:13+00:00] Processing /mnt/index/collections/05-cz/archive/NEDLIB--20051130094855-00000.arc.gz into /mnt/index/collections/05-cz/NEDLIB--20051130094855-00000.arc.gz.cdxj
[2025-01-05T20:29:15+00:00] Processing /mnt/index/collections/05-cz/archive/NEDLIB--20051209053122-00000.arc.gz into /mnt/index/collections/05-cz/NEDLIB--20051209053122-00000.arc.gz.cdxj
Jakmile jsou všechny indexy archivy v kolekci vytvořené. Nástroj setřídí všechny *.arc.gz
a *.warc.gz
do souboru /mnt/index/collections/{{collection}/indexes/index.cdxj
. A poté přesune indexy do /mnt/index/cdxj-archive/
.
Všechny chybové zprávy vzniklé při indexaci jsou uchovány /mnt/index/cdxj-archive/logs/{ARCHIVE_NAME}.cdxj.stderr
.
Indexace jedné kolekce
pywb-test@war2:~$ ./cdxj-manager.sh 05-cz
Indexace více kolekcí
Indexace všech kolekcí z roku 05.
pywb-test@war2:~$ for collection in $(ls /mnt/index/collections/ |grep ^05-*); do ./cdxj-manager.sh $collection; done
[2025-01-05T20:14:38+00:00] Processing 05-cz
Nástroje pywb
Jak zjistit z jaké kolekce URL pochází?
MementoAPI poskytuje informace o URL. Výstup obsahuje informace o URL, kolekci, časové známce a kolekci.
pywb-test@war2:~$ curl http://10.3.0.21:443/wayback/timemap/link/http://underground.cz/814
<http://10.3.0.21:443/wayback/timemap/link/http://underground.cz/814>; rel="self"; type="application/link-format"; from="Sun, 14 Jul 2002 18:04:22 GMT",
<http://10.3.0.21:443/wayback/http://underground.cz/814>; rel="timegate",
<http://underground.cz/814>; rel="original",
<http://10.3.0.21:443/wayback/20020714180422mp_/http://underground.cz/814>; rel="memento"; datetime="Sun, 14 Jul 2002 18:04:22 GMT"; collection="05-cz"
Získání metadata o URL pomocí cdx?
pywb-test@war2 curl -s '10.3.0.21:443/wayback/cdx?url=www.facebook.com/legal/terms&output=json'
vrací
{
"urlkey": "com,facebook)/legal/terms",
"timestamp": "20221209191852",
"url": "https://www.facebook.com/legal/terms",
"mime": "text/html",
"status": "200",
"digest": "GRUWGB5ZAMAPKEAC2DOOD2AEY7M6P2EZ",
"length": "290673",
"offset": "496164353",
"filename": "rec-20221209182111914788-65f062a0d7a3.warc.gz",
"source": "1222_prezident23/indexes/index.cdxj",
"source-coll": "1222_prezident23",
"access": "allow"
}
Indexační nástroj ./wb-manager-reindex.sh
[!WARNING] Tento nástroj je omezený počtem paměti serveru. Proto se nehodí na větší sklizně. S každým novým archivem v kolekci, stoupa spotřeba paměti. Nástroj ./cdxj-manager.sh by měl být spolehlivější..
Je wrapper nástroje pywb manager. Slouží k vytvoření indexu pro danou kolekci. Index je nutný pro zobrazení archivních dat. Indexování je časově náročný proces. Indexování je možné spustit pro jednu kolekci.
Wrapper spustí příklaz wb-manager reindex uvnitř kontejneru pywb. Příkaz vyžaduje název kolekce. Název kolekce je název složky v adresáři /mnt/index/collections/
. Wrapper na konci indeakce vypíše dobu trvání indexace a všechny chyby uloží do složky /home/{pywb-test|pywb-prod}/logs/
, dle uživatele, který nástroj spustil.
Indexace jedné kolekce
pywb-test@war2:~$ ./wb-manager-reindex.sh 05-cz
indexing collection: 05-cz
Indexace více kolekcí
pywb-test@war2:~$ for collection in /mnt/index/collections/{05,06,07,08,09,10,11,12}*; do ./wb-manager-reindex.sh $(basename ${collection}); done
indexing collection: 05-cz
Výstup seznamu nalazených kolekcí.
pywb-test@war2:~$ for collection in /mnt/index/collections/{05,06,07,08,09,10,11,12}*; do echo $(basename ${collection}); done
05-cz
05-cz2004
05-cz2005
05-dalimil
05-info_muni
05-militaria-20041212
05-Serials
05-vysocina
06-cz2006
06-czech
06-estonia
06-harvest0
06-idnes
06-Ikaros
06-povodne
06-Serials
06-slovakia
06-slovenia
06-univerzity
06-volby2006
06-zive_servery
07-cz2007
07-MICR
07-novaBudovaNK
07-olympiadaPraha
07-Serials
08-cz2008
08-novaBudovaNK
08-novaBudovaSTK
08-Serials
08-volba-prezident-2008
08-vyroci68
09-cz2009
09-evropskeVolby2009
09-komunismusIdnes
09-liberec
09-novaBudovaNK
09-novaBudovaSTK
09-predsednictviEU
09-selectedSites
09-selective
09-Serials
09-testing
10-cz2010
10-Serials
11-ArchiveIt
11-cz2011
11-Havel-2011
11-Serials
11-test_files
12-ArchiveIt
12-Bloguje-2012
12-Extras
12-Havel-2011
12-NKP-2012
12-Serials
12-testCrawls