19/11/2021

KMail overzetten naar nieuwe computer: waar zit de mail?

Filed under: — cybrarian @ 4:47 pm

Oude systeem: OpenSUSE Leap 42.3
Nieuw systeem: OpenSUSE Leap 15.3

In principe is het mogelijk de mail te exporteren en terug te importeren, maar dat schijnt niet altijd van een leien dakje te gaan, bv terugzetten van zo’n backup volgens “Marien”: Migrating KMail

Zie ook:
KMail backup: waar zit de mail?
http://linuxuser.copyleft.be/liglog/?p=7414
KMail adressen meenemen bij upgrade
http://linuxuser.copyleft.be/liglog/?p=6701

Tools?
kf5-config --path config --locate kmail2rc
Geeft bv:

/home/naam/.config/kmail2rc

kwriteconfig gebruikt met de --group switch kan items toevoegen aan het configuratiebestand, zelfs “verborgen” instellingen die niet kunnen gemaakt worden vanuit kmail’s configuratie zelf.

Op zoek naar:
KMail contacten

KMail accounts
Er bestaan mapjes met cryptische nummers die lijken de e-mail accounts weer te geven:

~/.local/share/emailidentities> ls -lFA
totaal 0
drwxr-xr-x 2 naam users 6 2 jun 2018 100995881/
drwxr-xr-x 2 naam users 6 14 sep 10:54 106823056/
drwxr-xr-x 2 naam users 6 2 nov 2018 1081299005/
drwxr-xr-x 2 naam users 24 2 jun 2018 1111680374/
drwxr-xr-x 2 naam users 6 2 jun 2018 1135926466/
drwxr-xr-x 2 naam users 6 14 sep 10:54 1261466099/
drwxr-xr-x 2 naam users 6 2 jun 2018 1374215742/

maar die zijn allemaal leeg.

KMail mail

For IMAP or remote email, this will be retained within it’s datastore, which can be found at ~/.local/share/akonadi/.

Ik vind de laatste verstuurde en ontvangen mail in :

/home/username/.local/share/akonadi_maildir_resource_0/
Daarin:
drafts
inbox
- /cur/ hier zit een aangekomen testmail
- /new / hier zitten nieuw binnengekomen mails zichtbaar in KMail
outbox
sent-mail
- /cur/
- /new/ hier zit een verzonden testmail
templates
trash

Oude systeem:
/home/naam/.local/share
3,1G akonadi
4,0K contacts
4,0K emailidentities
144G local-mail

local-mail: hier zit idd de mail
in .inbox.directory/
in local/cur (sommige mail; oudere niet nodig?)
in SomeName/cur (bevat inkomende mail die ik zoek)

en sent-mail (63 GB)
/cur (bevat de verzonden mail)

Op basis van de gevonden bestanden kopieer ik de reeds naar hier gehaalde met scp -r

Of diegene die nog op een ander systeem staan haal ik af met rsync

Laatste ingevulde waarde (tekst) in Calc

Filed under: — cybrarian @ 12:08 pm

Ik heb een hele rij met versienummers van software in een LibreOffice Calc rekenblad gezet:
(ik heb de cellen geformatteerd als tekst, om de versienummers niet als getallen met decimaal punt te laten interpreteren)

programma1 | 0.0.3 | 0.0.4
programma2 |
programma3 | 0.1.2 | 0.1.3 | 0.1.4 | 0.1.5

De kolommen hebben bovenaan een weeknummer in dit geval, maar kunnen maanden, dagen zijn, of eender wat.
Ik heb iets meer dan 52 kolommen, invullen begint aan kolom E en loopt tot kolom BM.

Nu wil ik in een kolom vooraan de hoogste versie weergeven. Voor de eerste rij is dat 0.0.4, tweede niets, derde 0.1.5.

Calc moet dus in de rij zoeken naar de laatste ingevulde waarde, en die weergeven (bv rij 4 voor “programma1”).

Het was een beetje zoeken, maar dat kan het eenvoudigst (lijkt me) met LOOKUP:

=LOOKUP(2;1/(E4:BM4<>"");E4:BM4)

De middelste range E4:BM4 is de rij waarin gezocht wordt.
Achteraan staat de range E4:BM4, dat is de range waaruit hij een waarde terug gaat geven.
(je kan ook een waarde uit een range ernaast laten teruggeven, bv als je een klantnaam opzoekt en dan de bijhorende klantnummer uit aanpalende rij/kolom wil gebruiken).

Het eerste stuk blijkt een truukje te zijn om Calc te laten zoeken naar niet-lege waarden in de rij.

Niet lege waarde voor een reeks E4:BM4<>"" geeft een reeks met antwoorden: TRUE, TRUE, FALSE, FALSE, …

Een range met booleaanse waarden wordt ook geïnterpreteerd als nullen en énen: 1, 1, 0, 0 …

In deze reeks kan je zoeken naar een nul, een één, of een twee (wat niet voorkomt).

De eigenschap van LOOKUP is :
– dat die zoekt tot hij een gezochte waarde vindt
– fouten overslaat.
– als hij iets niet vindt, de laatste dichtstbijwaarde geeft.

Door de range van waarden 0,1,1 als noemer te zetten tov teller 1/ krijgen we een reeks waarbij 1/0 telkens een fout geeft en 1/1 een 1:

1, 1, ERROR, ERROR, …

Hierin zoeken naar een 2 (die niet voorkomt) brengt de zoek tot het einde van de reeks, die bevat een ERROR, vorige ook, vorige ook .. tot hij bij de laatste niet-error waarde komt die het “dichtst bij een twee” is, en dat is de kolom van de laaatste waarde uit de reeks die wij willen (hier kolom F).
We krijgen dus de waarde terug die in Kolom F staat, en dat is de laatste ingevulde waarde “0.0.4” in ons voorbeeld.

De formule =LOOKUP(2;1/(E4:BM4<>"");E4:BM4) ingevuld in de kolom vooraan, en gekopieerd naar beneden geeft het resultaat (vet):

0.0.4 | programma1 | 0.0.3 | 0.0.4
#N/A | programma2 |
0.1.5 | programma3| 0.1.2 | 0.1.3 | 0.1.4 | 0.1.5

Powered by WordPress