2024-05-06
blast from the past: llgal
Veel gebruikt in 2007
llgal -R --sy 1024
levert nog steeds een bruikbare index van foto's
2024-04-08
Automatisch gegenereerde ondertiteling downloadem van Youtube met yt-dlp --write-auto-subs --skip-download https://www.youtube.com/watch?v=TAbi_2mbetc
Superhandig om te kunnen zoeken in long format shows.
2024-03-20
fpdf kan ook pdf/A die signatures ondersteunt.
Hier code van een subclass:
http://www.fpdf.org/en/script/script103.php
Bijgeleverd voorbeeld werkt, maak eigen font met http://www.fpdf.org/makefont/
In mijn geval gebruik ik DejaVuSans en ook de bold versie. Code snippet:
$pdf->AddFont('DejaVuSans', '', 'DejaVuSans.php'); $pdf->AddFont('DejaVuSans', 'B', 'DejaVuSans-Bold.php');
$pdf->SetFont('DejaVuSans','B',16);
2023-08-20
Een nieuw (sib) domein toevoegen met letsencrypt kan zo:
certbot --expand -d vit-tech.nl,www.vit-tech.nl
waarbij vit-tech.nl al bestond
2023-08-15
let's encrypt met de certbot zodat ook www.example.com het doet, ipv alleen example.com:
sudo ./certbot-auto certonly --standalone -d example.com -d www.example.com
2023-07-19
Sym link loops -bedoeld of onbedoeld - detecteren gaat prima met de -L optie van find:
find -L .
stderr: find: File system loop detected
2023-07-17
Ik wist van de OR optie in find, ( -o ) werkt prima. Behalve als er een -exec achteraan komt. Dan zijn haakjes () om de or-statements nodig. Voorbeeld:
werkt prima:
find . -maxdepth 1 -name 'p' -o -name 's'
werkt alleen op s:
find . -maxdepth 1 -name 'p' -o -name 's*' -exec ls {} \;
werkt voor p en s :
find . -maxdepth 1 \( -name 'p' -o -name 's' \) -exec ls {} \;
2023-07-15
van twitter mag niet meer anoniem downloaden. Met yt-dlp gaat het met je eigen profiel zo:
./yt-dlp -u @username https://twitter.com/Publisher/status/345098
2023-04-20
Deze had ik niet paraat.
File met tab EN spaties inlezen met read levert variabelen die gevuld zijn met stukjes uit de regel gesplitst door tab OF spatie.
Als je wil dat ie alleen op tab splitst dan moet dat zo:
while IFS=$'\t' read a b c d e f g h i j k l; do echo $a,$b,$c,$d,$e,$f,$g,$h,$i,$j,$k,$l; done < tst
2023-04-13
Nog niet eerder nodig gehad maar wat komt deze optie ( cp -L ) vandaag goed van pas. Er was een map met submappen en 31340 links naar bestanden. Zorgvuldig samengesteld in een aantal jaar.
Die structuur moest blijven bestaan maar de server werd geen linux maar windows, helaas.
Oplossing: cp -r -L mapMetLinks/* mapMetFiles/
2023-03-10
Eigenijk nooit aandacht aan besteed, maar
wait_timeout interactive_timeout
settings hebben effect op timeouts van sleep connecties in MySql. Merk je niks van totdat de standaard waarde van max_connections (151) opeens wordt bereikt.
2023-02-28
In Xfce 4.10, to enable manual position of the apps tabs: Settings > Panel > Item > Window Buttons > Edit the currently selected item (5th icon down) > Sorting Order > None, Allow Drag and Drop.
2023-02-22
Ping check if remote host is still alive
ping -c5 -q 101.132.0.10
if [ $? -eq 1 ] then echo host seems dead. exiting. exit fi echo ok going ahead
2023-02-07
Wat de Letsencrypt certbot niet voor je doet: toegang verschaffen tot letsencrypt/http_challenges en .well-known/acme-challenge
2023-02-03
Een bash script waarvan een commando blijft hangen, zonder timeout. Als je het commando afbreekt gaat het script door, en dat wil je soms niet.
Een optie is dan om het script af te breken. Het hangende commando blijft dan actief maar komt onder parent ID 1. Die kan je dan vervolgens analyseren en afbreken.
(als root) zoek PID van je script:
ps -eo pid,lstart,cmd | grep bash
PPID en PID van het hangende commando daarin: ps -eo ppid,pid,lstart,cmd | grep hangendCommando
PPID van de laatste moet overeen komen met PID van de eerste.
Voorbeeld (tstParentCh.sh is niet meer dan `sleep 3700`):
ps -eo pid,lstart,cmd | grep bash x 355041 Sun Feb 5 10:52:01 2023 /bin/bash /home/user/tstParentCh.sh 355154 Sun Feb 5 10:53:11 2023 grep bash 1061964 Tue Dec 6 18:01:39 2022 bash 1263474 Wed Dec 7 07:43:59 2022 bash 2612209 Sat Nov 26 14:38:58 2022 bash ps -eo ppid,pid,lstart,cmd | grep sleep x 355041 355042 Sun Feb 5 10:52:01 2023 sleep 3700 2612330 355290 Sun Feb 5 10:54:33 2023 grep sleep
kill het script:
kill 355041
hangt nu op ppid 1:
ps -eo ppid,pid,lstart,cmd | grep sleep x 1 355042 Sun Feb 5 10:52:01 2023 sleep 3700 2612330 355387 Sun Feb 5 10:55:30 2023 grep sleep
en nu: kill 355042
2023-01-16
extract een enkele tabel uit file gemaakt met mysqldump: sed -n -e '/DROP TABLE.*`tabelNaam`/,/UNLOCK TABLES/p' mysqlDumpFile.sql > enkeleTabel.sql
2023-01-15
Soms gaat youtube-dl mis op twitter met ERROR: unable to open for writing: [Errno 36] File name too long omdat de hele tweet gebruikt wordt... Alternatief:
youtube-dl -o - $twitterURL | ffmpeg -i - -r 15 tw.mp4
2023-01-11
in MySql is dit efficient genoeg (1M rijen) met index:
SQL: first gap/missing in continuous range:
SELECT id + 1
FROM mytable m0
WHERE NOT EXISTS
( SELECT NULL FROM mytable m1 WHERE m1.id = m0.id + 1 ) ORDER BY id
LIMIT 1
evt. eerste where uitbreiden met beperkende reeks (and id>xxx and id<yyy)
2023-01-06
deze blog met txt2html en scp naar mijn webserver, omdat het kan. Resultaat van txt2html zonder opties is best aardig.
2023-01-05
motion met geluid:
on_event_start "arecord -f cd -c 1 -t wav --use-strftime /home/paul2/motion/IN/%v-%Y%m%d%H%M%S.wav" on_event_end "killall arecord"
dan muxen met ffmpeg:
for f in IN/*mkv do echo $f; fbase=`basename -s .mkv $f`; thewav=IN/$fbase.wav; echo $thewav; ffmpeg -i $f -i $thewav -c:v copy -c:a aac OUT/$fbase.mp4 done;
2022-12-31
de windows guest vpn laten gebruiken:
omdat ik die windows10 in qemu eigenlijk alleen nodig heb in combinatie met de VPN van de klant moet dat ook werken als die vpn (openconnect) ook daarmee samenwerkt.
De default NAT werkt dan niet.
Gelukkig wordt er een standaard bridge aangemaakt met virsh net-start default: virbr0 die UP wordt als de guest actief is.
Gebruik dan dit als bridge device in de NIC optie van virt-manager.
Aanpassing aan de iptables: forward was -i alleen de eth dev en postrouting -o
2022-12-30
met
strings /sys/firmware/acpi/tables/MSDM
kan je blijkbaar de windows licentiecode in de bios zien. (Reminder dat iedere bios uniek identificeerbaar is!)
Dit gebruikt om met qemu windows 10 te installeren. Helass nog nodig voor IFS import/conversie. Van b.v. https://www.microsoft.com/nl-nl/software-download/windows10ISO te downloaden.
virsch etc herontdekt, eenvoudiger en sneller dan de kale qemu-system-x86_64 . Config met virt-manager bovendien inactieve netwerk interface gedetecteerd. In virt-manager stond de NAT interfact op inactief. Ook
virsh net-list --all
liet dat zien.
Met
virsh net-start default
aangezet.
( virsh net-autostart default zou het na reboot automatisch kunnen doen, nu ongewenst want ik gebruikt qemu-win10 zelden. ).