Je kent zeker de opdracht du om het schijfverbruik te bekijken en df om de vrije schijfruimte te bekijken. Het programma duf combineert beide taken en toont het resultaat in een overzichtelijke tabel met kleuren afhankelijk van hoe vol de schijven zijn.
Het programma zit nog niet in de meeste repository’s van distributies, maar op de GitHub-pagina biedt het pakketten aan voor diverse platforms en in diverse pakketformaten (onder andere deb, rpm en apk).
Standaard toont duf de belangrijkste opslagapparaten: lokale opslag, netwerkopslag, fuse-apparaten en speciale apparaten zoals /dev/ and /run. Je kunt een specifiek type apparaat verbergen, bijvoorbeeld:
duf --hide-loops
Je kunt ook specifieke types bestandssystemen verbergen, bijvoorbeeld:
duf --hide-fs tmpfs
Je kunt de uitvoer ook sorteren, bijvoorbeeld oplopend volgens capaciteit van het opslagapparaat:
duf --sort size
Of je kunt de uitvoer beperken tot specifieke kolommen:
duf --output mountpoint,usage
Voor de liefhebbers kun je ook vragen om de uitvoer in de vorm van json te tonen:
duf –json
Dat kan handig zijn voor verdere verwerking van de gegevens in je eigen scripts, bijvoorbeeld met een command-line JSON-processor zoals jq.
Schakel USB-autosuspend uit
Recentelijk kocht ik een nieuwe laptop. Toen ik daarmee de eerste keer aan een videoconferentie deelnam, was dat een helse ervaring: mijn netwerkverbinding haperde de hele tijd en de microfoon schakelde zichzelf continu uit (iets wat ik niet onmiddellijk doorhad). Het duurde een tijdje voor ik begreep dat beide problemen dezelfde oorzaak hadden: USB autosuspend. Ik gebruikte immers een USB Gigabit Ethernetadapter en een externe usb-microfoon, en blijkbaar werden die in slaapmodus gezet om stroom te besparen.
Gelukkig kun je dit gedrag eenvoudig aanpassen, onder andere met de powermanagementtool tlp. Heb je die nog niet draaien, installeer die dan, bijvoorbeeld op Ubuntu met:
$ sudo apt install tlp
Zoek dan in de lijst van aangesloten usb-apparaten naar de apparaten die je niet wilt doen slapen:
$ lsusb Bus 002 Device 002: ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 002: ID 04f2:b684 Chicony Electronics Co., Ltd Chicony USB2.0 Camera Bus 001 Device 006: ID 0556:0001 Asahi Kasei Microsystems Co., Ltd AK5370 I/F A/D Converter Bus 001 Device 003: ID 8087:0029 Intel Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bij mij ging het om de Gigabit Ethernet adapter (met ID 0bda:8153) op de eerste regel, en de microfoon (met ID 0556:0001) op de vierde regel.
Maak nu een bestand /etc/tlp.d/50-usb-autosuspend-blacklist.conf aan en voeg beide ID’s toe aan de parameter USB_BLACKLIST:
USB_BLACKLIST="0bda:8153 0556:0001"
Je kunt hier meerdere ID’s toevoegen. Je scheidt ze dan met een spatie zoals hierboven.
Herstart dan tlp:
$ sudo systemctl restart tlp
Verbind de getroffen usb-apparaten nu opnieuw. Als alles goed gaat, blijven ze nu ingeschakeld en kun je weer genieten van je videoconferenties!
Geef Chromium-snap toegang tot usb
In Ubuntu worden steeds meer programma’s als snap geïnstalleerd. Zelfs als je de webbrowser Chromium installeert met sudo apt install chromium-browser, wordt het programma zonder dat je dit doorhebt als snap geïnstalleerd.
Een van de nadelen (of voordelen, het is hoe je ernaar kijkt) is dat Chromium dan geen toegang heeft tot usb, waardoor een techniek zoals WebUSB niet werkt. Als je dan bijvoorbeeld de NumWorks-rekenmachine wilt updaten (zie de review in dit nummer van Linux Magazine), vindt de website je apparaat niet.
Om te weten waartoe een snap toegang heeft, kun je de verbindingen bekijken, bijvoorbeeld:
$ snap connections chromium
In de lijst vind je ook een interface raw-usb. Deze heb je nodig om de Chromium-snap toegang te geven tot usb. Dat kan met de volgende opdracht:
snap connect chromium:raw-usb
Daarna herkent je webbrowser het aangesloten usb-apparaat wel. Op dezelfde manier kun je snaps toegang tot andere zaken geven, zoals PulseAudio, het netwerk, de camera, of je home-directory.
Verwijder interactief dubbele bestanden
In de loop der jaren heb je op je computers of op je nas wellicht talloze dubbele bestanden verzameld. Dat is niet altijd eenvoudig op te merken, en kan daardoor tot heel wat verspilde opslagruimte leiden. Een programma dat je wil helpen om die dubbels te ontdekken, is Periscope. Op de GitHub-pagina vind je binaire releases.
Na de installatie voer je een eerste scan uit van een specifieke directory (of de huidige als je geen directory opgeeft):
psc scan /
Na deze scan (die op een grote schijf uren tot een dag kan duren) kun je statistieken opvragen met:
psc summary
Dan krijg je te zien hoeveel bestanden Periscope heeft gecontroleerd op je schijf, hoeveel daarvan uniek en dubbels zijn, en hoeveel GB opslagruimte je met de dubbels verspilt.
Om concreet de dubbele bestanden te zien te krijgen, voer je het volgende uit:
psc report | less
De dubbels worden gesorteerd op grootte, van grote tot kleine bestanden. Zo vind je onmiddellijk de grootste boosdoeners. Bekijk ze een voor een. Als het inderdaad om dubbels gaan die weg mogen, verwijder ze dan met psc rm BESTAND. Uiteraard zul je ook heel wat dubbels vinden die je niet dient te verwijderen. Denk daarbij aan bibliotheken in Pythons virtuele omgevingen. Maar je zult er zeker bestanden vinden die je ooit eens dubbel gedownload hebt.
Voor de analyse is het belangrijk dat je bestanden verwijdert met psc rm: Periscope past zijn interne database dan aan. Als je toch bestanden met rm of een ander programma verwijderd hebt, kun je met psc refresh de verwijderde bestanden uit de database halen: dat is veel sneller dan weer een volledige scan uit te voeren. Maar let op: op een grote schijf kan dit toch meerdere minuten tot tientallen minuten duren. Als je psc rm uitvoert op een bestand dat niet dubbel in de database zit, krijg je overigens een foutmelding.
Met psc ls DIR krijg je de inhoud van een directory te zien. Bij een bestand wordt een 1 getoond als er een dubbel van op de schijf staat en een 2 als er in totaal drie identieke versies van het bestand bestaan. Met psc tree DIR worden alle bestanden met een duplicaat in de opgegeven directory getoond. En wil je weten waar het duplicaat van een bestand staat, dan voer je info BESTAND uit.
Nadat je op deze manier grote kuis hebt gehouden, kun je de database van Periscope verwijderen met:
psc finishpsc