All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.
Asking to borrow your weird boxes for 30 seconds: OpenVZ / LXC / Alpine / ARM / old kernels
I'm working on an Android app that monitors servers over plain SSH. It's already released, but I still need to work on compatibility. Stuff like really old kernels, I honestly have no idea what they return. My own machines are limited, and providers mostly offer recent images, so there's only so much I can test myself.
One example: I read the CPU model from the "model name" line in /proc/cpuinfo. A lot of ARM machines don't even have that line. There are more cases like this, and I want my parsing to handle them properly instead of guessing.
So, asking to borrow your boxes for half a minute. If you have an OpenVZ / LXC / Alpine / ARM / old kernel box, could you run this and paste the whole output back?
echo "--- basics"; uname -rm
echo "--- virt"; systemd-detect-virt 2>/dev/null; [ -d /proc/vz ] && echo openvz; grep -ao 'container=[a-z]*' /proc/1/environ 2>/dev/null
echo "--- cpu"; sed -n '1,12p' /proc/cpuinfo; lscpu 2>/dev/null | sed -n '1,15p'
echo "--- cpufreq"; cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq 2>/dev/null
echo "--- stat"; head -1 /proc/stat
echo "--- mem"; grep -E '^(MemTotal|MemFree|MemAvailable|Buffers|Cached|SReclaimable|SwapTotal|SwapFree)' /proc/meminfo
echo "--- cgroup"; cat /sys/fs/cgroup/memory.max 2>/dev/null; cat /sys/fs/cgroup/memory/memory.limit_in_bytes 2>/dev/null; [ -r /proc/user_beancounters ] && echo beancounters
echo "--- df"; df -TP 2>/dev/null | head -8
echo "--- diskstats"; head -6 /proc/diskstats 2>/dev/null; echo "lines=$(cat /proc/diskstats 2>/dev/null | wc -l)"
echo "--- net"; awk 'NR>2{print $1}' /proc/net/dev
echo "--- ps"; ps -eo pid=,user=,pcpu=,pmem=,args= 2>&1 | head -2; ps --version 2>&1 | head -1
echo "--- top"; top -bn1 2>&1 | head -7
echo "--- logs"; ls /var/log/auth.log /var/log/secure /var/log/messages 2>/dev/null; command -v journalctl logread 2>/dev/null; journalctl -qn1 --no-pager >/dev/null 2>&1 && echo journal-readable || echo journal-not-readable
Everything is read-only, nothing gets installed or changed, and it's not a benchmark. Root or normal user both work, just mention which one you used. If there's a line you'd rather not share, delete it. One or two outputs per machine type is plenty. Thanks!


Comments
How old is too old, and how weird is too weird?
If it runs Linux and a modern ssh client can still get in, it's not too old. CentOS 6 / old OpenVZ era is exactly the kind of stuff I'm after. Linux only though, so no FreeBSD, sorry. Containers, NAT boxes, routers, all fair game. The weirder the better
eris@tags:~$ "--- basics"; uname -rm
echo "--- virt"; systemd-detect-virt 2>/dev/null; [ -d /proc/vz ] && echo openvz; grep -ao 'container=[a-z]*' /proc/1/environ 2>/dev/null
echo "--- cpu"; sed -n '1,12p' /proc/cpuinfo; lscpu 2>/dev/null | sed -n '1,15p'
echo "--- cpufreq"; cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq 2>/dev/null
echo "--- stat"; head -1 /proc/stat
echo "--- mem"; grep -E '^(MemTotal|MemFree|MemAvailable|Buffers|Cached|SReclaimable|SwapTotal|SwapFree)' /proc/meminfo
echo "--- cgroup"; cat /sys/fs/cgroup/memory.max 2>/dev/null; cat /sys/fs/cgroup/memory/memory.limit_in_bytes 2>/dev/null; [ -r /proc/user_beancounters ] && echo beancounters
echo "--- df"; df -TP 2>/dev/null | head -8
echo "--- diskstats"; head -6 /proc/diskstats 2>/dev/null; echo "lines=$(cat /proc/diskstats 2>/dev/null | wc -l)"
echo "--- net"; awk 'NR>2{print $1}' /proc/net/dev
echo "--- ps"; ps -eo pid=,user=,pcpu=,pmem=,args= 2>&1 | head -2; ps --version 2>&1 | head -1
echo "--- top"; top -bn1 2>&1 | head -7
echo "--- logs"; ls /var/log/auth.log /var/log/secure /var/log/messages 2>/dev/null; command -v journalctl logread 2>/dev/null; journalctl -qn1 --no-pager >/dev/null 2>&1 && echo journal-readable || echo journal-not-readable
-bash: --- basics: command not found
6.1.0-49-arm64 aarch64
--- virt
kvm
--- cpu
processor : 0
BogoMIPS : 50.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x3
CPU part : 0xd0c
CPU revision : 1
processor : 1
BogoMIPS : 50.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
Architecture: aarch64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Vendor ID: ARM
Model name: Neoverse-N1
Model: 1
Thread(s) per core: 1
Core(s) per socket: 2
Socket(s): 1
Stepping: r3p1
BogoMIPS: 50.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
NUMA node(s): 1
--- cpufreq
--- stat
cpu 98457924 72978 6223951 804006948 240210 0 16329420 0 0 0
--- mem
MemTotal: 3916140 kB
MemFree: 953432 kB
MemAvailable: 3336996 kB
Buffers: 81796 kB
Cached: 2351340 kB
SwapTotal: 0 kB
SwapFree: 0 kB
SReclaimable: 149368 kB
--- cgroup
--- df
Filesystem Type 1024-blocks Used Available Capacity Mounted on
udev devtmpfs 1904332 0 1904332 0% /dev
tmpfs tmpfs 391616 1124 390492 1% /run
/dev/sda1 ext4 39052844 14671776 22744500 40% /
tmpfs tmpfs 1958068 0 1958068 0% /dev/shm
tmpfs tmpfs 5120 0 5120 0% /run/lock
/dev/loop3 squashfs 63488 63488 0 100% /snap/core24/1588
/dev/loop4 squashfs 43776 43776 0 100% /snap/snapd/26869
--- diskstats
11 0 sr0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
8 0 sda 525249 23028 62370554 242689 21434645 7113161 378367747 13339687 0 1938708 14216621 112201 0 177176904 39113 1906127 595131
8 1 sda1 524792 22785 62349021 242581 21434634 7113161 378367746 13339685 0 2167248 13621373 112185 0 173186376 39106 0 0
8 14 sda14 52 0 416 12 0 0 0 0 0 8 12 0 0 0 0 0 0
8 15 sda15 222 243 14013 51 1 0 1 0 0 48 58 16 0 3990528 6 0 0
7 0 loop0 59 0 2182 23 0 0 0 0 0 12 23 0 0 0 0 0 0
lines=15
--- net
lo:
eth0:
--- ps
1 root 0.0 0.3 /sbin/init
2 root 0.0 0.0 [kthreadd]
ps from procps-ng 4.0.2
--- top
top - 07:14:04 up 53 days, 6:26, 3 users, load average: 0.20, 0.22, 0.19
Tasks: 116 total, 1 running, 115 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 3824.4 total, 929.6 free, 566.8 used, 2522.2 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 3257.6 avail Mem
--- logs
/usr/bin/journalctl
journal-readable
Hetzner CAX server
Exactly the ARM sample I needed, thanks. Two things I didn't expect: no cpufreq at all on the CAX, and the stock Debian image has none of the classic log files, just journald. Both noted
???
1.3 MB of RAM on a 2.6.14 kernel, what even is that, a router? It doesn't have awk so my app is probably never the right tool for it, but the cpuinfo alone was worth it. Old ARM says "Processor" where everyone else says "model name". Thanks!!
An old, damaged screenless Nintendo DS that was repurposed as a networked sensor. And yes,
CONFIG_MMU=n.Holy shit,Respect
nintendo legal has entered the chat
BeagleBone Black 512MB running Debian 13, unprivileged user
Sorry, since you don't want BSD i can't really help you. I don't have a ton of of stuff in operation right now anyways and it's usually just boring non-Intel/AMD x86 systems. Nothing very special. A Transmeta built x86 clone is pretty much as good as it gets and it's usually very simple setups that don't have much of anything exciting installed - it's basically the exact opposite. A handful of processes and a disk layout that avoids degrading the compact flash they run from. That's it.
GL-iNet GL-AR750 router running OpenWrt 25.12.4, root user
Raspberry Pi 400 running Ubuntu 24.04, unprivileged user
Holy crap, it's actually you! Three different archs, thank you so much, huge help. The MIPS router says "cpu model" and only x86 says "model name", my parser only knew the latter. Glad you showed up, no way I could test this myself
Fixed now, thanks again!!
Don't apologize! That's craftsmanship. If any of them run Linux, that's exactly what I need