WSL2 Backup to OneDrive Cloud

Posted on Wed 31 January 2024 in windows • Tagged with linux, vm, development

WSL2 provides great disk performance, but it requires storing the files separately in a virtual disk that is not accessible by OneDrive. WSL2 can be backed up with wsl --export Debian to a VHD or TGZ, but that is a complete disk backup of 20gb or more -- not scalable for hourly backups.

With this approach, we use Windows Task Scheduler to trigger robocopy to incrementally sync directories from WSL2 to Onedrive's native FS, so incremental copies are fast ( 1 s per 10k files), and OneDrive sync time remains negligible.

It's also useful for snapshotting subdirectories to TGZ for offline or …

Continue reading

Smokeping On Raspberry Pi Zero

Posted on Wed 18 January 2023 in raspberrypi • Tagged with linux, cli, networking

Smokeping is a self-contained network monitoring app , capable of monitoring using ICMP/Ping, HTTP, DNS -- as well as other signals generated from CLI monitoring tools (e.g. curl, dig, mtr etc). It provides a web-based monitoring UI to chart the probe measurements so no further monitoring apps (like Prometheus) are needed.

Running smokeping on a $5 Raspberry Pi Zero is a fun experiment in lightweight computing . Using Apache Mod FastCGI makes the app usable on the meager hardware.

By the end of the exercise you'll have the smokeping probes running to test network performance and the UX available on your …

Continue reading

Testing Without Excuses

Posted on Sun 29 August 2021 in testing • Tagged with linux, cli

Every app has that last inch (or mile) of code that's not covered by tests. Usually it's an interactive cycle of compile-run-inspect on the command line like

You Test

 curl -X POST https://reqbin.com/echo/post/json

👀 You Expect:

{"success":"true"}

Despite having 3-4 testing frameworks for unit tests, e2e, regression etc-- there's always a gap where you find yourself re-playing commands in the terminal to test.

A common case is 🔥firefighting where ad-hoc tests are needed to validate an emergency config change or deployment.

Not only is this a waste of time, it's error prone and reduces the …

Continue reading