Linux Tips
- September 21, 2018
- 0
Zet je mailbox over naar imap
Onlangs heb ik ervoor gekozen om mijn mailserver niet langer zelf te beheren, maar uit te besteden aan Kolab Now. Dit is een groupwaredienst die volledig op open source componenten is gebaseerd. Tegelijkertijd heb ik de stap naar de twintigste eeuw gezet en besloten om voor mijn e-mail niet langer gebruik te maken van het prehistorische protocol pop3, maar van het iets modernere imap. Er was echter één probleem: de afgelopen twintig jaar heb ik altijd al mijn binnenkomende e-mails via pop3 lokaal gedownload. Hierdoor had ik 11 Gbyte e-mails op mijn computer staan die op de mailserver terecht moesten komen.
Er bestaan allerlei tools om e-mails tussen verschillende imap-servers te migreren of om e-mails van een imap-server lokaal op te slaan, maar het is niet bij al die programma’s direct duidelijk of je er ook lokale e-mails mee naar een imap-server kunt sturen, wat ik in deze situatie nodig had. Toch vond ik al vrij snel het programma mbsync (verwarrend is dat het project isync heet, terwijl het programma als naam mbsync heeft), dat deze mogelijkheid eenvoudig aanbiedt.
Mbsync leest het configuratiebestand in ~/.mbsyncrc in. Daarin definieer je de imap-server waarnaar je de e-mails wilt verplaatsen, de lokale e-mails (in mijn geval in Maildir-formaat) en dan uiteindelijk een ‘kanaal’ waarin je aangeeft welke richting de e-mails op moeten. Voor onze situatie (van de lokale opslag naar de imap-server) ziet dat er als volgt uit:
# De imap-server waarnaar je de e-mails wilt kopiëren
IMAPAccount doel
Host imap.example.com
User gebruikersnaam
Pass geheimwachtwoord
SSLType IMAPS
CertificateFile /etc/ssl/certs/ca-certificates.crt
# Pas deze aan je distributie aan
# Link de imap-server aan de naam ‘server’
IMAPStore server
Account doel
# De plaats van de lokale e-mails. Gebruik een slash aan het einde van Path!
MaildirStore lokaal
Path ~/mail/
Inbox ~/mail/Inbox
# Het kanaal waar de synchronisatie gebeurt. Met ‘Push’ gebeurt de synchronisatie richting de server.
Channel kanaal
Master :server:
Slave :lokaal:
Patterns *
Create Both
Sync Push
SyncState *
Pas uiteraard de inhoud aan je eigen situatie (mailserver en plaats van je lokale opslag) aan. Voer daarna de volgende opdracht uit:
mbsync kanaal
Het programma begint nu al je lokale e-mails naar de imap-server te uploaden en in de juiste directory te plaatsen. Als je ondertussen in een imap-client je e-mails op de server bekijkt, zul je ze al binnen zien komen. Eventueel dien je je nog in te schrijven op de mappen voordat je ze ziet.
Overigens kan mbsync ook in de andere richting e-mails synchroniseren, als je een back-up wilt maken van de e-mails op je imap-server. Het enige wat je daarvoor hoeft te veranderen in het configuratiebestand is Sync Pull in plaats van Sync Push bij de definitie van je kanaal. Maak dan wel voordat je mbsync uitvoert de directory aan waarin je e-mails moeten terechtkomen als die nog niet bestaat.
Link:
http://isync.sourceforge.net/
Neem je downloaddirectory op de schop
Als je een tijdje met een computer werkt, dan wordt jouw downloaddirectory vanzelf een vuilnishoop waar je niet zo snel meer iets in terug kan vinden. Als het openen van de directory in je bestandsbeheerder of andere programma’s telkens langer duurt, is het tijd om schoon schip te maken. Maar daar kijk je uiteraard tegen op. Een eenvoudig, maar heel nuttig programma in deze situatie is classifier. Het zit in de repository met Python-modules, dus je installeert het met:
sudo pip install classifier
Ga daarna met cd naar de directory die je wilt oppoetsen en voer het programma zonder argumenten uit:
classifier
Het programma stopt onmiddellijk. Dan denk je misschien dat niet veel is gebeurd, maar niets is minder waar. Een simpele ls doet je dit onmiddellijk beseffen. De directory bevat nog amper bestanden, maar wel heel wat nieuwe subdirectory’s. Alle bestanden van hetzelfde type zijn gegroepeerd in die directory’s, bijvoorbeeld video’s, muziek, afbeeldingen, documenten en archiefbestanden.
Let op: zonder argumenten past classifier dit toe in de directory zelf en er is geen undo-functie. Met de optie -o uitvoerdirectory geef je op dat de reorganisatie in een andere directory terechtkomt. De originele directory blijft dan onaangeroerd, zodat je die nog kunt blijven gebruiken als het resultaat je niet bevalt.
Bekijk zeker ook eens de uitvoer van classifier –help, want je hebt nog veel meer uitgebreide mogelijkheden om het herordenen van je directory’s te beïnvloeden.
Link:
http://bhrigu.me/classifier/
De downloadmanager Persepolis
Er bestaan downloadmanagers genoeg, maar die vallen uiteen in twee soorten. De eerste soort heeft een mooie grafische interface, maar is vrij beperkt in functionaliteit. De tweede soort biedt veel functionaliteit, maar dan ben je verplicht om met een commandline-interface te werken. Aria2 is een voorbeeld van die laatste categorie. Persepolis brengt daarentegen het beste van de twee werelden samen: het programma biedt een grafische interface (in Qt5) voor aria2. Op Ubuntu voeg je eerst de ppa voor Persepolis toe:
sudo add-apt-repository ppa:persepolis/ppa
Daarna update je de pakketlijst en installeer je het programma:
sudo apt update
sudo apt install persepolis
Daarmee wordt ook aria2 geïnstalleerd, de commandline downloadmanager waarvoor Persepolis een grafische interface is.
Persepolis toont zijn downloads in het centrale venster en heeft daarboven een balk met knoppen voor de meest voorkomende acties. Wil je meer acties, dan klik je linksboven om het applicatiemenu te openen. Maar vaak heb je dat niet eens nodig.
Wil je bijvoorbeeld een groot bestand downloaden, kopieer dan de url van het bestand en klik in Persepolis op de grote plusknop. De gekopieerde url is al automatisch in het tekstveld van de downloadlink geplakt, zodat je alleen nog maar op OK hoeft te klikken om de download te starten.
Daarna doet aria2 op de achtergrond zijn werk. Doordat het meerdere delen van het bestand tegelijk download en allerlei andere optimalisaties uitvoert, komt je download snel binnen. Ook torrents zijn met Persepolis te downloaden.
Met Persepolis kun je ook downloads op specifieke tijdstippen plannen en zelfs de computer uitschakelen nadat een download is voltooid. Persepolis met je webbrowser integreren is ook mogelijk: het programma heeft een browserextensie voor Google Chrome en een add-on voor Firefox.
Link:
https://persepolisdm.github.io/
Reredirect: leid de uitvoer van een draaiend proces om
Eén van de leuke dingen in Linux en Unix is dat je de uitvoer van een programma kunt omleiden met > en | naar een bestand of naar een ander programma. Maar wat als je een programma al hebt opgestart en dan alsnog de uitvoer wilt omleiden? Het programma reredirect laat je toe om de uitvoer van een al draaiend proces om te leiden. Download de code:
git clone https://github.com/jerome-pouiller/reredirect.git
En compileer en installeer ze:
make && sudo make install
Onder Ubuntu dien je daarna nog ptrace de mogelijkheid te geven om zich aan processen te koppelen:
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
Wil je deze instelling permanent maken, pas ze dan aan in het bestand /etc/sysctl.d/10-ptrace.conf, maar niet na daar te lezen welke beveiligingsimpact dat heeft. Daarna leid je de uitvoer van het proces met id PID eenvoudig om naar FILE:
reredirect -m FILE PID
Bekijk man reredirect voor meer mogelijkheden, zoals het afzonderlijk omleiden van stdout en stderr, het omleiden naar programma’s en het herstellen van de oorspronkelijke uitvoer.
Link:
https://github.com/jerome-pouiller/reredirect