Pokud si chcete vymazat data z databáze PaKoně a nebo si ji rovnou smažete, (/srv/pakon )
dostanete při pokusu o její zobrazení nepěknou hlášku:
root@turris:~# pakon-show
Traceback (most recent call last):
File "/usr/bin/pakon-show", line 133, in
data=json.loads(response)
File "/usr/lib/python3.5/json/__init__.py", line 319, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.5/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.5/json/decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Sama se neopraví ani nevytvoří, ani po restartu, prozatím oficiálně nepodporovaný postup je
vytvořit databázi znovu tímto scriptem:
Ahoj, no - smazal jsem tu DB při problémech s místem při updatu. To se nakonec povedlo ale od té doby to nefunguje. Create_db.py proběhne potichu, udělá se jeden soubor pakon-archive.db
Ale pakon-show ukazuje tu stejnou hlášku pořád.
Teď jsem to ověřil a je to stále použitelné.
Nejprve se vytvoří databáze a postupem času se zálohuje a vznikají další soubory…
Zkuste se podívat co ukáže: ps | grep pakon
já dostanu tohle:
8149 root 16872 S python3 /usr/libexec/pakon-light/pakon-monitor.py
8421 root 27820 S python3 /usr/libexec/pakon-light/pakon-handler.py
9119 root 99792 S {Suricata-Main} /usr/bin/suricata -c /etc/suricata-pakon/suricata.yaml --pidfile /var/run/suricata/suricata.pid --af-packet=br-lan --af-packet=br-guest
27719 root 1352 S grep pakon
7524 root 11732 S python3 /usr/libexec/pakon-light/pakon-handler.py
28967 root 78376 S {Suricata-Main} /usr/bin/suricata -c /etc/suricata-pakon/suricata.yaml --pidfile /var/...
31204 root 1352 R grep pakon
Když ten monitor pustím ručně tak:
python3 /usr/libexec/pakon-light/pakon-monitor.py
Traceback (most recent call last):
File "/usr/libexec/pakon-light/pakon-monitor.py", line 392, in <module>
main()
File "/usr/libexec/pakon-light/pakon-monitor.py", line 318, in main
dns_cache.try_load()
File "/usr/libexec/pakon-light/pakon-monitor.py", line 86, in try_load
cache = json.loads(f.read().decode('utf-8'), object_pairs_hook=collections.OrderedDict)
File "/usr/lib/python3.6/gzip.py", line 276, in read
return self._buffer.read(size)
File "/usr/lib/python3.6/gzip.py", line 482, in read
raise EOFError("Compressed file ended before the "
EOFError: Compressed file ended before the end-of-stream marker was reached
Ano, v /tmp je databáze Pakoně která se komprimuje (/etc/cron.d/pakon) a ukládá do /srv/pakon protože při restartu se /tmp smaže a přišel by jste o data.
Podle vašeho odkazu, nejprve se zastaví monitor, smaže se vše v /srv/pakon a spustí monitor.