Updates:
- 2019-07-09: Explanation on Git and changed cron job from "@daily" to "@reboot". This is because the "@daily" cron job may only be executed at a fixed time during the night where the notebook is usually not running. This is depending on the specific GNU/Linux distribution used.
I'm helping some old lady by administrating her notebook. I set it up with Xubuntu LTS GNU/Linux which comes with the very easy to use and fast Xfce environment: not bloated and offers everything necessary. I stripped down the "start menu" such that it only shows the ten apps she's using.
Remote access is done via TeamViewer if necessary.
Today, I set it up with a neat monitoring I'm going to explain in this post.
The purpose is to have the possibility to take a quick look at the most basic status information whenever I want to.
For that, I wrote a small shell script named autologs.sh
:
#!/bin/sh ## This script saves some basic infos about this host and commits them via git ## NOTE: if you add a new file, it has to be added to the Git repo manually. ## directory where the results are written to: LOGDIR="/home/USER/.vk/share/autologs" ## ----------------------------------------------------------------------- ## ## get list of current cron jobs crontab -l > "${LOGDIR}"/root-crontab.txt ## get list of installed Debian packages dpkg --get-selections > "${LOGDIR}"/dpkg--get-selections.txt ## get current log file of Debian packages in order to review updates cp /var/log/apt/history.log "${LOGDIR}"/var-log-apt-history.log ## how much space is left on the drives? df -h > "${LOGDIR}"/df-h.txt ## when were the most recent backups? ls -la /home/USER/.cache/deja-dup > "${LOGDIR}"/deja-dup_files.log ## what hardware is attached? lspci > "${LOGDIR}"/lspci.txt lsusb > "${LOGDIR}"/lsusb.txt hwinfo --short > "${LOGDIR}"/hwinfo--short.txt ## ----------------------------------------------------------------------- ## ## commit everything after being generated git -C "${LOGDIR}" add "${LOGDIR}" git -C "${LOGDIR}" commit -a -m "`date '+%Y-%m-%dT%H.%M.%S autocommit by autologs.sh'`" #end
Of course, "USER" is replaced with the account name.
The folder /home/USER/.vk/
is a hidden one which I shared via Syncthing. Syncthing doesn't need a public IP or a firewall rule in order to synchronize two folders between two hosts that are online at the same time. I configured Syncthing to start as user service via systemd automatically.
My own (receiving) host runs 24/7 and is therefore always available whenever the other notebook is running.
The autologs.sh
is invoked two minutes after each boot via cron as user root
on the remote notebook:
@reboot sleep 2m ; /home/USER/.vk/share/autologs/autologs.sh
It then produces the files mentioned in the script, they are synchronized via Syncthing to my personal host where I can take a look on some status information any time.
I'm committing to a local Git repository because Git is extremely efficient in storing a history of linear text files that change slightly over time. It also provides decent tools to visualize differences between two given points in time.
Using the described method obove, I do have an up-to-date status report on remote hosts without having direct access to the remote host. Nothing fancy, simple to set up, reliable in use and probably a small trick you haven't thought of yet.