Skip to content

Message of the day

Why not include a nice message of the day for each server I log into?

The below gives some insight into what the servers running, status of zpools, usage, etc. While not show below - thankfully - If a zpool error is found the status gives a full zpool status -x debrief which is particulary eye-catching upon login.

I've also squeezed in a 'reboot required' flag for when the server had detected its running kernel/init/systemd is a different version to what it booted with - useful to know when long running servers require a reboot to pick up new kernel/etc versions.

Screenshot of message of the day prompt on login to server
Message of the day

Code TLDR

/nixos/modules/nixos/system/motd

Write a shell script using nix with a bash motd of your choosing.

let
  motd = pkgs.writeShellScriptBin "motd"
    ''
      #! /usr/bin/env bash
      source /etc/os-release
      service_status=$(systemctl list-units | grep podman-)

      <- SNIP ->
      printf "$BOLDService status$ENDCOLOR\n"
    '';
in

This gets us a shells script we can then directly call into systemPackages - and after that its just a short hop to make this part of the shell init.

Note

Replace with your preferred shell!

environment.systemPackages = [
    motd
];
programs.fish.interactiveShellInit =  ''
    motd
'';