From ca8a75363bc9ab025468cd5a875be9bbca257e6b Mon Sep 17 00:00:00 2001 From: vitrinekast Date: Mon, 18 Mar 2024 22:40:12 +0000 Subject: [PATCH] loads of new commands included! --- index.html | 610 ++++++++++++++++++++++++--------------- script.js | 44 ++- script.py | 42 ++- style.css | 34 ++- templates/template.jinja | 194 +++++++------ 5 files changed, 574 insertions(+), 350 deletions(-) diff --git a/index.html b/index.html index f1f9940..76d2c41 100644 --- a/index.html +++ b/index.html @@ -26,15 +26,14 @@

TL;DR

too log didn't read

- Some temp debug info: This log was generated on 2024-03-18 20:48:33.398733, the next will be available after 2024-03-18 23:48:33.398733. I now have 25 logs generated!
@@ -43,15 +42,36 @@

What happened today?

+ Some temp debug info: This log was generated on 2024-03-18 22:38:41.543544, the next will be available after 2024-03-19 01:38:41.543544. I now have 68 logs generated! +

tldr@chopchop:~ $sudo journalctl -S today -u kitchen-stove.service -u + kitchen-bin.service -u kitchen-fridge.service -r -n

+ +
    + +
  • Mar 18 21:11:15 chopchop systemd[1]: Failed to start kitchen-fridge.service - Kitchen Fridge Service.
  • + +
  • Mar 18 21:11:15 chopchop systemd[1]: kitchen-fridge.service: Failed with result 'exit-code'.
  • + +
  • Mar 18 21:11:15 chopchop systemd[1]: kitchen-fridge.service: Start request repeated too quickly.
  • + +
  • Mar 18 21:11:15 chopchop systemd[1]: Stopped kitchen-fridge.service - Kitchen Fridge Service.
  • + +
  • Mar 18 21:11:15 chopchop systemd[1]: kitchen-fridge.service: Scheduled restart job, restart counter is at 6.
  • + +
  • Mar 18 21:11:15 chopchop systemd[1]: kitchen-fridge.service: Failed with result 'exit-code'.
  • + +
  • Mar 18 21:11:15 chopchop systemd[1]: kitchen-fridge.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
  • + +
  • Mar 18 21:11:15 chopchop python3[26203]: /usr/bin/python3: can't open file '/home/xpub/kitchen/Fridge/fridge.py': [Errno 2] No such file or directory
  • + +
  • Mar 18 21:11:14 chopchop systemd[1]: Failed to start kitchen-stove.service - Kitchen Stove Service.
  • + +
  • Mar 18 21:11:14 chopchop systemd[1]: kitchen-stove.service: Failed with result 'exit-code'.
  • + +
-
sudo journalctl -S today -u kitchen-stove.service -u kitchen-bin.service -u kitchen-fridge.service -r -n
-

Mar 18 17:39:13 chopchop systemd[1]: Started kitchen-fridge.service - Kitchen Fridge Service. -Mar 18 17:39:07 chopchop python3[10827]: lp: No file in print request. -Mar 18 17:39:07 chopchop python3[10812]: request id is hp-color-laserjet-cp5225-16 (1 file(s)) -Mar 18 17:39:06 chopchop systemd[1]: Started kitchen-stove.service - Kitchen Stove Service. -Mar 18 17:38:33 chopchop systemd[1]: Started kitchen-bin.service - Kitchen Bin Service.

-
uptime -s
+

tldr@chopchop:~ $uptime -s

2024-03-18 07:51:34

@@ -61,7 +81,9 @@ Mar 18 17:38:33 chopchop systemd[1]: Started kitchen-bin.service - Kitchen Bin S an image. -
sudo journalctl _COMM=useradd -r -n 1 --output-fields=MESSAGE
+ +

tldr@chopchop:~ $sudo journalctl _COMM=useradd -r -n 1 --output-fields=MESSAGE +

Feb 29 15:08:48 chopchop useradd[8744]: new user: name=colord, UID=118, GID=130, home=/var/lib/colord, shell=/usr/sbin/nologin, from=/dev/pts/4

@@ -72,255 +94,372 @@ Mar 18 17:38:33 chopchop systemd[1]: Started kitchen-bin.service - Kitchen Bin S network of knowledge and dependence). -
-
users_created_today
-

-- No entries -- - - - A level 1 annotation for users_created_today - - -

list_active_services
-

[ - ] alsa-utils - [ - ] apparmor - [ + ] atop - [ + ] atopacct - [ + ] bluetooth - [ - ] console-setup.sh - [ + ] cron - [ + ] cups - [ + ] cups-browsed - [ + ] dbus - [ + ] dphys-swapfile - [ + ] exim4 - [ + ] fake-hwclock - [ - ] fcgiwrap - [ - ] hwclock.sh - [ + ] incron - [ - ] keyboard-setup.sh - [ + ] kmod - [ + ] networking - [ - ] nfs-common - [ + ] nginx - [ - ] paxctld - [ - ] php7.4-fpm - [ + ] php8.2-fpm - [ + ] procps - [ - ] pulseaudio-enable-autospawn - [ + ] raspi-config - [ + ] rng-tools-debian - [ - ] rpcbind - [ - ] rsync - [ - ] saned - [ + ] ssh - [ - ] sudo - [ + ] triggerhappy - [ + ] udev - [ - ] uuidd - [ - ] x11-common - - - A level 1 annotation for list_active_services - - -

list_groups
-

root:x:0: -daemon:x:1: -bin:x:2: -sys:x:3: -adm:x:4:xpub -tty:x:5: -disk:x:6: -lp:x:7:aleevadh,bernabereit,lorenzo,mania,mszw,mxrwho,river,senak,thijsoid,v,vitrinekast,wang,xpub,xpub,zerozeta,zz1,www-data -mail:x:8: -news:x:9: -uucp:x:10: -man:x:12: -proxy:x:13: -kmem:x:15: -dialout:x:20:xpub,mb,river,joak,aleevadh,bernabereit,lorenzo,mania,mszw,mxrwho,river,senak,thijsoid,v,vitrinekast,wang,xpub,zerozeta,zz1,murtaugh,mb -fax:x:21: -voice:x:22: -cdrom:x:24:xpub -floppy:x:25: -tape:x:26: -sudo:x:27:joak,aleevadh,bernabereit,lorenzo,mania,mszw,mxrwho,river,senak,thijsoid,v,vitrinekast,wang,xpub,zerozeta,zz1,murtaugh,mb,strt,cristina,chipchip,killer -audio:x:29:xpub,river,pulse,vitrinekast,liquidsoap -dip:x:30: -www-data:x:33:vitrinekast -backup:x:34: -operator:x:37: -list:x:38: -irc:x:39: -src:x:40: -gnats:x:41: -shadow:x:42: -utmp:x:43: -video:x:44:xpub -sasl:x:45: -plugdev:x:46:xpub -staff:x:50: -games:x:60:xpub -users:x:100:xpub,murtaugh,aleevadh,h4ck3r,mania,mszw,mxrwho,senak,v,wang,zerozeta,bernabereit,lorenzo,mb,river,thijsoid,vitrinekast,zz1,joak,cristina,strt,chipchip,killer -nogroup:x:65534: -systemd-journal:x:101: -systemd-network:x:102: -systemd-resolve:x:103: -input:x:104:xpub -kvm:x:105: -render:x:106:xpub -crontab:x:107: -netdev:x:108:xpub -systemd-timesync:x:109: -messagebus:x:110: -bluetooth:x:112: -avahi:x:113: -spi:x:999:xpub -i2c:x:998:xpub -gpio:x:997:xpub -systemd-coredump:x:996: -xpub:x:1000: -vitrinekast:x:1001: -senak:x:1002: -lorenzo:x:1003: -mxrwho:x:1004: -bernabereit:x:1005: -river:x:1006: -v:x:1007: -mania:x:1008: -aleevadh:x:1009: -h4ck3r:x:1010: -thijsoid:x:1011: -mszw:x:1012: -zerozeta:x:1013: -wang:x:1014: -zz1:x:1015: -Debian-exim:x:114: -rtkit:x:115: -murtaugh:x:1017: -mb:x:1016: -pulse:x:116: -pulse-access:x:117: -mlocate:x:118: -uuidd:x:119: -joak:x:1018: -sgx:x:120: -plocate:x:121: -polkitd:x:995: -_ssh:x:111: -pipewire:x:122: -cristina:x:1019: -strt:x:1020: -incron:x:123: -chipchip:x:1021: -killer:x:1022: -tcpdump:x:124: -liquidsoap:x:125: -lpadmin:x:126:river,xpub -ssl-cert:x:127: -scanner:x:128:saned -saned:x:129: -colord:x:130: - - - A level 1 annotation for list_groups - - -

list_package_installs
-

2024-03-10 15:16:14 install libtk8.6:armhf 8.6.13-2 -2024-03-10 15:16:14 status half-installed libtk8.6:armhf 8.6.13-2 -2024-03-10 15:16:15 install tk8.6-blt2.5:armhf 2.5.3+dfsg-4.1 -2024-03-10 15:16:15 status half-installed tk8.6-blt2.5:armhf 2.5.3+dfsg-4.1 -2024-03-10 15:16:15 install blt:armhf 2.5.3+dfsg-4.1 -2024-03-10 15:16:15 status half-installed blt:armhf 2.5.3+dfsg-4.1 -2024-03-10 15:16:15 install python3-tk:armhf 3.11.2-3 -2024-03-10 15:16:15 status half-installed python3-tk:armhf 3.11.2-3 -2024-03-10 15:16:16 status installed libtk8.6:armhf 8.6.13-2 -2024-03-10 15:16:16 status installed tk8.6-blt2.5:armhf 2.5.3+dfsg-4.1 -2024-03-10 15:16:16 status installed blt:armhf 2.5.3+dfsg-4.1 -2024-03-10 15:16:16 status installed python3-tk:armhf 3.11.2-3 -2024-03-10 15:16:16 status installed libc-bin:armhf 2.36-9+rpt2+deb12u4 -2024-03-12 14:29:01 install python3-markupsafe:armhf 2.1.2-1 -2024-03-12 14:29:01 status half-installed python3-markupsafe:armhf 2.1.2-1 -2024-03-12 14:29:02 install python3-jinja2:all 3.1.2-1 -2024-03-12 14:29:02 status half-installed python3-jinja2:all 3.1.2-1 -2024-03-12 14:29:02 status installed python3-markupsafe:armhf 2.1.2-1 -2024-03-12 14:29:03 status installed python3-jinja2:all 3.1.2-1 -2024-03-15 09:51:48 install libhttp-parser2.9:armhf 2.9.4-5 -2024-03-15 09:51:48 status half-installed libhttp-parser2.9:armhf 2.9.4-5 -2024-03-15 09:51:48 install libmbedx509-1:armhf 2.28.3-1 -2024-03-15 09:51:48 status half-installed libmbedx509-1:armhf 2.28.3-1 -2024-03-15 09:51:48 install libmbedtls14:armhf 2.28.3-1 -2024-03-15 09:51:48 status half-installed libmbedtls14:armhf 2.28.3-1 -2024-03-15 09:51:48 install libgit2-1.5:armhf 1.5.1+ds-1+deb12u1 -2024-03-15 09:51:48 status half-installed libgit2-1.5:armhf 1.5.1+ds-1+deb12u1 -2024-03-15 09:51:49 install bat:armhf 0.22.1-4 -2024-03-15 09:51:49 status half-installed bat:armhf 0.22.1-4 -2024-03-15 09:51:50 status installed libmbedx509-1:armhf 2.28.3-1 -2024-03-15 09:51:50 status installed libmbedtls14:armhf 2.28.3-1 -2024-03-15 09:51:50 status installed libhttp-parser2.9:armhf 2.9.4-5 -2024-03-15 09:51:50 status installed libgit2-1.5:armhf 1.5.1+ds-1+deb12u1 -2024-03-15 09:51:50 status installed bat:armhf 0.22.1-4 -2024-03-15 09:51:50 status installed libc-bin:armhf 2.36-9+rpt2+deb12u4 -2024-03-15 09:55:52 status installed bat:armhf 0.22.1-4 -2024-03-15 09:55:52 status half-installed bat:armhf 0.22.1-4 -2024-03-15 09:55:52 status not-installed bat:armhf +

tldr@chopchop:~ $sudo journalctl -S today _COMM=useradd -r

+ + + A level 1 annotation for users_created_today + + + + +

tldr@chopchop:~ $ grep 'install' /var/log/dpkg.log

+
    + +
  • 2024-03-10 15:16:14 install libtk8.6:armhf 8.6.13-2
  • + +
  • 2024-03-10 15:16:15 install tk8.6-blt2.5:armhf 2.5.3+dfsg-4.1
  • + +
  • 2024-03-10 15:16:15 install blt:armhf 2.5.3+dfsg-4.1
  • - - A level 1 annotation for list_package_installs - +
  • 2024-03-10 15:16:15 install python3-tk:armhf 3.11.2-3
  • -
    list_package_upgrade
    -

    +

  • 2024-03-12 14:29:01 install python3-markupsafe:armhf 2.1.2-1
  • - - A level 1 annotation for list_package_upgrade - +
  • 2024-03-12 14:29:02 install python3-jinja2:all 3.1.2-1
  • -
    list_package_remove
    -

    2024-03-15 09:55:52 startup packages remove -2024-03-15 09:55:52 remove bat:armhf 0.22.1-4 +

  • 2024-03-15 09:51:48 install libhttp-parser2.9:armhf 2.9.4-5
  • + +
  • 2024-03-15 09:51:48 install libmbedx509-1:armhf 2.28.3-1
  • + +
  • 2024-03-15 09:51:48 install libmbedtls14:armhf 2.28.3-1
  • + +
  • 2024-03-15 09:51:48 install libgit2-1.5:armhf 1.5.1+ds-1+deb12u1
  • + +
  • 2024-03-15 09:51:49 install bat:armhf 0.22.1-4
  • + +
+ + + + +

tldr@chopchop:~ $ grep 'remove' /var/log/dpkg.log

+
    + +
  • 2024-03-15 09:55:52 startup packages remove
  • + +
  • 2024-03-15 09:55:52 remove bat:armhf 0.22.1-4
  • + +
+ + +

tldr@chopchop:~ $sudo journalctl _COMM=systemd-logind -r + --output-fields=MESSAGE -S today -g "New session" | grep -v 'Boot'

+
    + +
+

tldr@chopchop:~ $sudo journalctl _COMM=groupadd -r --output-fields=MESSAGE

+
    + +
+

tldr@chopchop:~ $sudo journalctl _COMM=groupremove -r --output-fields=MESSAGE +

+
    + +
+

tldr@chopchop:~ $sudo journalctl _COMM=usermod -r

+
    + +
+

tldr@chopchop:~ $sudo journalctl _COMM=userdel -r

+
    + +
+ +
+

tldr@chopchop:~ $sudo service --status-all

+
    + +
  • [ - ] alsa-utils
  • + +
  • [ - ] apparmor
  • + +
  • [ + ] atop
  • + +
  • [ + ] atopacct
  • + +
  • [ + ] bluetooth
  • + +
  • [ - ] console-setup.sh
  • + +
  • [ + ] cron
  • + +
  • [ + ] cups
  • + +
  • [ + ] cups-browsed
  • + +
  • [ + ] dbus
  • + +
  • [ + ] dphys-swapfile
  • + +
  • [ + ] exim4
  • + +
  • [ + ] fake-hwclock
  • + +
  • [ - ] fcgiwrap
  • + +
  • [ - ] hwclock.sh
  • + +
  • [ + ] incron
  • + +
  • [ - ] keyboard-setup.sh
  • + +
  • [ + ] kmod
  • + +
  • [ + ] networking
  • + +
  • [ - ] nfs-common
  • + +
  • [ + ] nginx
  • + +
  • [ - ] paxctld
  • + +
  • [ - ] php7.4-fpm
  • + +
  • [ + ] php8.2-fpm
  • + +
  • [ + ] procps
  • + +
  • [ - ] pulseaudio-enable-autospawn
  • + +
  • [ + ] raspi-config
  • + +
  • [ + ] rng-tools-debian
  • + +
  • [ - ] rpcbind
  • + +
  • [ - ] rsync
  • + +
  • [ - ] saned
  • + +
  • [ + ] ssh
  • + +
  • [ - ] sudo
  • + +
  • [ + ] triggerhappy
  • + +
  • [ + ] udev
  • + +
  • [ - ] uuidd
  • + +
  • [ - ] x11-common
  • + +
+

tldr@chopchop:~ $getent group

+
    + +
  • root:x:0:
  • + +
  • daemon:x:1:
  • + +
  • bin:x:2:
  • + +
  • sys:x:3:
  • + +
  • adm:x:4:xpub
  • + +
  • tty:x:5:
  • - - A level 1 annotation for list_package_remove - +
  • disk:x:6:
  • -
    device_info
    -

    Raspberry Pi 4 Model B Rev 1.4 +

  • lp:x:7:aleevadh,bernabereit,lorenzo,mania,mszw,mxrwho,river,senak,thijsoid,v,vitrinekast,wang,xpub,xpub,zerozeta,zz1,www-data
  • - - A level 1 annotation for device_info - +
  • mail:x:8:
  • -
    debian_version
    -

    12.1 +

  • news:x:9:
  • - - A level 1 annotation for debian_version - +
  • uucp:x:10:
  • -
    kernel_version
    -

    Linux chopchop 6.1.65-v8+ #1703 SMP PREEMPT Tue Dec 5 16:25:41 GMT 2023 aarch64 GNU/Linux +

  • man:x:12:
  • - - A level 1 annotation for kernel_version - +
  • proxy:x:13:
  • +
  • kmem:x:15:
  • + +
  • dialout:x:20:xpub,mb,river,joak,aleevadh,bernabereit,lorenzo,mania,mszw,mxrwho,river,senak,thijsoid,v,vitrinekast,wang,xpub,zerozeta,zz1,murtaugh,mb
  • + +
  • fax:x:21:
  • + +
  • voice:x:22:
  • + +
  • cdrom:x:24:xpub
  • + +
  • floppy:x:25:
  • + +
  • tape:x:26:
  • + +
  • sudo:x:27:joak,aleevadh,bernabereit,lorenzo,mania,mszw,mxrwho,river,senak,thijsoid,v,vitrinekast,wang,xpub,zerozeta,zz1,murtaugh,mb,strt,cristina,chipchip,killer
  • + +
  • audio:x:29:xpub,river,pulse,vitrinekast,liquidsoap
  • + +
  • dip:x:30:
  • + +
  • www-data:x:33:vitrinekast
  • + +
  • backup:x:34:
  • + +
  • operator:x:37:
  • + +
  • list:x:38:
  • + +
  • irc:x:39:
  • + +
  • src:x:40:
  • + +
  • gnats:x:41:
  • + +
  • shadow:x:42:
  • + +
  • utmp:x:43:
  • + +
  • video:x:44:xpub
  • + +
  • sasl:x:45:
  • + +
  • plugdev:x:46:xpub
  • + +
  • staff:x:50:
  • + +
  • games:x:60:xpub
  • + +
  • users:x:100:xpub,murtaugh,aleevadh,h4ck3r,mania,mszw,mxrwho,senak,v,wang,zerozeta,bernabereit,lorenzo,mb,river,thijsoid,vitrinekast,zz1,joak,cristina,strt,chipchip,killer
  • + +
  • nogroup:x:65534:
  • + +
  • systemd-journal:x:101:
  • + +
  • systemd-network:x:102:
  • + +
  • systemd-resolve:x:103:
  • + +
  • input:x:104:xpub
  • + +
  • kvm:x:105:
  • + +
  • render:x:106:xpub
  • + +
  • crontab:x:107:
  • + +
  • netdev:x:108:xpub
  • + +
  • systemd-timesync:x:109:
  • + +
  • messagebus:x:110:
  • + +
  • bluetooth:x:112:
  • + +
  • avahi:x:113:
  • + +
  • spi:x:999:xpub
  • + +
  • i2c:x:998:xpub
  • + +
  • gpio:x:997:xpub
  • + +
  • systemd-coredump:x:996:
  • + +
  • xpub:x:1000:
  • + +
  • vitrinekast:x:1001:
  • + +
  • senak:x:1002:
  • + +
  • lorenzo:x:1003:
  • + +
  • mxrwho:x:1004:
  • + +
  • bernabereit:x:1005:
  • + +
  • river:x:1006:
  • + +
  • v:x:1007:
  • + +
  • mania:x:1008:
  • + +
  • aleevadh:x:1009:
  • + +
  • h4ck3r:x:1010:
  • + +
  • thijsoid:x:1011:
  • + +
  • mszw:x:1012:
  • + +
  • zerozeta:x:1013:
  • + +
  • wang:x:1014:
  • + +
  • zz1:x:1015:
  • + +
  • Debian-exim:x:114:
  • + +
  • rtkit:x:115:
  • + +
  • murtaugh:x:1017:
  • + +
  • mb:x:1016:
  • + +
  • pulse:x:116:
  • + +
  • pulse-access:x:117:
  • + +
  • mlocate:x:118:
  • + +
  • uuidd:x:119:
  • + +
  • joak:x:1018:
  • + +
  • sgx:x:120:
  • + +
  • plocate:x:121:
  • + +
  • polkitd:x:995:
  • + +
  • _ssh:x:111:
  • + +
  • pipewire:x:122:
  • + +
  • cristina:x:1019:
  • + +
  • strt:x:1020:
  • + +
  • incron:x:123:
  • + +
  • chipchip:x:1021:
  • + +
  • killer:x:1022:
  • + +
  • tcpdump:x:124:
  • + +
  • liquidsoap:x:125:
  • + +
  • lpadmin:x:126:river,xpub
  • + +
  • ssl-cert:x:127:
  • + +
  • scanner:x:128:saned
  • + +
  • saned:x:129:
  • + +
  • colord:x:130:
  • + +
- + + diff --git a/script.js b/script.js index c7f1963..603b21a 100644 --- a/script.js +++ b/script.js @@ -1,5 +1,3 @@ - - window.addEventListener("DOMContentLoaded", function () { var allAnnotations = this.document.querySelectorAll(".fn-annotatation"); let level = 0; @@ -16,11 +14,49 @@ window.addEventListener("DOMContentLoaded", function () { } updateShownAnnotations(); - document.getElementById("annotation").addEventListener("input", (e) => { + document.querySelector(".fn-annotation-slider").addEventListener("input", (e) => { level = Math.round(e.currentTarget.value / 100); updateShownAnnotations(); + }) + + const doTimeTravel = (e) => { + var next = allFiles[parseInt(e.target.value)]; + // TODO: loading state + + // TODO: trigger the loading state on input, only debounce the request + // TODO: make sure when visiting /log/{log}.html, this interaction also works + // TODO: better error management + // TODO: display the current selected file somewhere + fetch(window.location.href.replace("index.html", "") + "logs/" + next).then(function (response) { + return response.text(); + }).then(function (html) { + var parser = new DOMParser(); + var parsed = parser.parseFromString(html, 'text/html'); + var newContent = parsed.querySelector(".main__inner"); + var container = document.body.querySelector(".main__inner"); + + if(newContent) { + container.innerHTML = newContent.innerHTML; + } else { + container.innerHTML = "Couldn't load" + } + }).catch(function (err) { + // There was an error + console.warn('Something went wrong.', err); + }); + } - }) + const debounce = (callback, waitTime) => { + let timer; + return (...args) => { + clearTimeout(timer); + timer = setTimeout(() => { + callback(...args); + }, waitTime); + }; + } + + document.querySelector(".fn-time-slider").addEventListener('input', debounce(doTimeTravel, 1000)); }) \ No newline at end of file diff --git a/script.py b/script.py index f7013f3..88ebec5 100644 --- a/script.py +++ b/script.py @@ -4,7 +4,8 @@ from datetime import datetime, timedelta import os import fnmatch -amount_of_logs = len(fnmatch.filter(os.listdir("./logs"), '*.html')) +# TODO: check sorting of these files (should be chronological) +log_files = fnmatch.filter(os.listdir("./logs"), '*.html') now = datetime.today() next_report = now + timedelta(hours=3) @@ -12,19 +13,22 @@ next_report = now + timedelta(hours=3) def run_command(command, based = False): result = subprocess.run(command, capture_output=True, input=based) result.check_returncode() - return result.stdout.decode('UTF-8').strip() + stripped = result.stdout.decode('UTF-8').strip() + if "No entries" in stripped: + return "" + else: + return stripped last_user_added = subprocess.run(["sudo", "journalctl","_COMM=useradd","-r","-n", "1" , "--output-fields=MESSAGE"], capture_output=True) last_user_added_name = run_command(['grep', '-Po', "(?<=name)\W*\K[^ ]*"], based=last_user_added.stdout) - -users_created_today = run_command(["sudo", "journalctl", "-S","today","_COMM=useradd","-r","-n","1","--output-fields=MESSAGE"]) - +users_created_today = run_command(["sudo", "journalctl", "-S","today","_COMM=useradd","-r","--output-fields=MESSAGE"]).splitlines() since_last_boot = run_command(["uptime","-s"]) slb_date = datetime.strptime(since_last_boot, "%Y-%m-%d %H:%M:%S") time_since_last_boot = now - slb_date -list_package_installs = subprocess.run(["grep", 'install', "/var/log/dpkg.log"], capture_output=True).stdout.decode('UTF-8') +list_package_installs_init = subprocess.run(["grep", 'install', "/var/log/dpkg.log"], capture_output=True) +list_package_installs = run_command(['grep', '-v', "status"], based=list_package_installs_init.stdout) list_package_upgrade = subprocess.run(["grep", 'upgrade', "/var/log/dpkg.log"], capture_output=True).stdout.decode('UTF-8') list_package_remove = subprocess.run(["grep", 'remove', "/var/log/dpkg.log"], capture_output=True).stdout.decode('UTF-8') @@ -33,7 +37,11 @@ device_info = run_command(['awk', '-F:', '{ print $2}'], based=device_info_grab. ip_address_show = subprocess.run(["ip", "addr", "show", "end0"], check=True, capture_output=True) ip_address = run_command(['awk', '$1 == "inet" {gsub(/\/.*$/, "", $2); print $2}' ], based=ip_address_show.stdout) -kitchen_services = run_command(["sudo", "journalctl", "-S", "today", "-u", "kitchen-stove.service", "-u", "kitchen-bin.service", "-u", "kitchen-fridge.service", "-r", "-n"]) + +logins_today_log = subprocess.run(["sudo", "journalctl","_COMM=systemd-logind","-r" , "--output-fields=MESSAGE", "-S", "today", "-g", "'New session'" ], capture_output=True) +logins_today = run_command(['grep', '-v', "'Boot'"], based=logins_today_log.stdout) + +kitchen_services = run_command(["sudo", "journalctl", "-S", "today", "-u", "kitchen-stove.service", "-u", "kitchen-bin.service", "-u", "kitchen-fridge.service", "-r", "-n"]).splitlines() # loading the environment env = Environment(loader=FileSystemLoader("templates")) @@ -45,23 +53,29 @@ template = env.get_template("template.jinja") output = template.render( now = now, next_report = next_report, - amount_of_logs = amount_of_logs, + log_files = log_files, last_user_added=last_user_added.stdout.decode('UTF-8'), last_user_added_name=last_user_added_name, users_created_today=users_created_today, since_last_boot=since_last_boot, - list_package_installs=list_package_installs, - list_package_upgrade=list_package_upgrade, - list_package_remove=list_package_remove, + list_package_installs=list_package_installs.splitlines(), + list_package_upgrade=list_package_upgrade.splitlines(), + list_package_remove=list_package_remove.splitlines(), device_info=device_info, days_since_last_boot = time_since_last_boot.days, kitchen_services = kitchen_services, ip_address = ip_address, - list_groups = run_command(["getent","group"]), - list_active_services = run_command(["sudo", "service", "--status-all"]), + logins_today = logins_today, + list_groups = run_command(["getent","group"]).splitlines(), + list_active_services = run_command(["sudo", "service", "--status-all"]).splitlines(), debian_version = run_command(["cat", "/etc/debian_version"]), kernel_version = run_command(["uname","-a"]), - hostname = run_command(["hostname","-i"]) + hostname = run_command(["hostname","-i"]), + + groups_created = run_command(["sudo", "journalctl", "-S","today","_COMM=groupadd","-r"]).splitlines(), + groups_removed = run_command(["sudo", "journalctl", "-S","today","_COMM=groupremove","-r"]).splitlines(), + user_modified = run_command(["sudo", "journalctl", "-S","today","_COMM=usermod","-r"]).splitlines(), + user_deleted = run_command(["sudo", "journalctl", "-S","today","_COMM=userdel","-r"]).splitlines(), ) log_file_name = "logs/log_" + now.strftime("%Y-%m-%d_%H:%M:%S") + ".html" diff --git a/style.css b/style.css index 317426c..cb9e394 100644 --- a/style.css +++ b/style.css @@ -42,8 +42,8 @@ body { background-color: var(--background); display: grid; grid-template-columns: min-content 1fr min-content; - grid-template-rows: min-content 50px 1fr 50px; - grid-gap: 1rem 2rem; + grid-template-rows: min-content min-content 1fr min-content; + grid-gap: 1rem 1rem; grid-template-areas: "header header header" ". s-top s-top" @@ -92,9 +92,12 @@ main { background-color: black; border-bottom-right-radius: 60%; } - article h1, -article h2, +article h2 { + margin-top: 1rem; + margin-bottom: 1rem; +} + article h3 { margin-top: 1rem; margin-bottom: 0.5rem; @@ -131,20 +134,39 @@ article { } article p, -article pre { +article pre, article li { margin: 0 0; font-size: 14px; line-height: 1.5; } -article pre { +article ul, article ol { + list-style-type: none; + padding: 0 0; + margin: 0 0; +} + +article li { + margin-bottom: .15rem; +} + +article p, article li { + word-break: break-word; +} + +article .hostname { color: green; + padding-right: 1ch; } footer { grid-area: footer; } +footer h3, aside h3 { + line-height: 1; +} + aside { grid-area: aside; writing-mode: vertical-rl; diff --git a/templates/template.jinja b/templates/template.jinja index 0424488..a69ef26 100644 --- a/templates/template.jinja +++ b/templates/template.jinja @@ -26,15 +26,14 @@

TL;DR

too log didn't read

- Some temp debug info: This log was generated on {{ now }}, the next will be available after {{ next_report }}. I now have {{ amount_of_logs }} logs generated!
@@ -43,11 +42,19 @@

What happened today?

- -
sudo journalctl -S today -u kitchen-stove.service -u kitchen-bin.service -u kitchen-fridge.service -r -n
-

{{kitchen_services}}

+ Some temp debug info: This log was generated on {{ now }}, the next will be available after {{ next_report + }}. I now have {{ log_files | length }} logs generated! +

tldr@chopchop:~ $sudo journalctl -S today -u kitchen-stove.service -u + kitchen-bin.service -u kitchen-fridge.service -r -n

+ {% if kitchen_services|length > 0 %} +
    + {% for item in kitchen_services %} +
  • {{ item }}
  • + {% endfor %} +
+ {% endif %} -
uptime -s
+

tldr@chopchop:~ $uptime -s

{{ since_last_boot }}

{% if since_last_boot is defined %} @@ -57,7 +64,9 @@ an image.{% endif %} {% endif %} -
sudo journalctl _COMM=useradd -r -n 1 --output-fields=MESSAGE
+ +

tldr@chopchop:~ $sudo journalctl _COMM=useradd -r -n 1 --output-fields=MESSAGE +

{{last_user_added}}

{% if last_user_name is defined %} @@ -71,101 +80,103 @@ network of knowledge and dependence). {% endif %} -
-
users_created_today
-

{{users_created_today}} - {% if users_created_today is defined %} - - A level 1 annotation for users_created_today - - {% else %} - (no input) - {% endif %} -

list_active_services
-

{{list_active_services}} - {% if list_active_services is defined %} - - A level 1 annotation for list_active_services - - {% else %} - (no input) - {% endif %} -

list_groups
-

{{list_groups}} - {% if list_groups is defined %} - - A level 1 annotation for list_groups - - {% else %} - (no input) - {% endif %} -

list_package_installs
-

{{list_package_installs}} - {% if list_package_installs is defined %} - - A level 1 annotation for list_package_installs - - {% else %} - (no input) - {% endif %} -

list_package_upgrade
-

{{list_package_upgrade}} - {% if list_package_upgrade is defined %} - - A level 1 annotation for list_package_upgrade - - {% else %} - (no input) - {% endif %} -

list_package_remove
-

{{list_package_remove}} - {% if list_package_remove is defined %} - - A level 1 annotation for list_package_remove - - {% else %} - (no input) - {% endif %} -

device_info
-

{{device_info}} - {% if device_info is defined %} - - A level 1 annotation for device_info - - {% else %} - (no input) - {% endif %} -

debian_version
-

{{debian_version}} - {% if debian_version is defined %} - - A level 1 annotation for debian_version - - {% else %} - (no input) - {% endif %} -

kernel_version
-

{{kernel_version}} - {% if kernel_version is defined %} - - A level 1 annotation for kernel_version - - {% else %} - (no input) - {% endif %} + +

tldr@chopchop:~ $sudo journalctl -S today _COMM=useradd -r

+ {% if users_created_today is defined %} + + A level 1 annotation for users_created_today + + {% endif %} + + {% if list_package_installs|length > 0 %} +

tldr@chopchop:~ $ grep 'install' /var/log/dpkg.log

+
    + {% for item in list_package_installs %} +
  • {{ item }}
  • + {% endfor %} +
+ {% endif %} + + {% if list_package_upgrade|length > 0 %} +

tldr@chopchop:~ $ grep 'upgrade' /var/log/dpkg.log

+
    + {% for item in list_package_upgrade %} +
  • {{ item }}
  • + {% endfor %} +
+ {% endif %} + + {% if list_package_remove|length > 0 %} +

tldr@chopchop:~ $ grep 'remove' /var/log/dpkg.log

+
    + {% for item in list_package_remove %} +
  • {{ item }}
  • + {% endfor %} +
+ {% endif %} + +

tldr@chopchop:~ $sudo journalctl _COMM=systemd-logind -r + --output-fields=MESSAGE -S today -g "New session" | grep -v 'Boot'

+
    + {% for item in logins_today %} +
  • {{ item }}
  • + {% endfor %} +
+

tldr@chopchop:~ $sudo journalctl _COMM=groupadd -r --output-fields=MESSAGE

+
    + {% for item in groups_created %} +
  • {{ item }}
  • + {% endfor %} +
+

tldr@chopchop:~ $sudo journalctl _COMM=groupremove -r --output-fields=MESSAGE +

+
    + {% for item in groups_removed %} +
  • {{ item }}
  • + {% endfor %} +
+

tldr@chopchop:~ $sudo journalctl _COMM=usermod -r

+
    + {% for item in user_modified %} +
  • {{ item }}
  • + {% endfor %} +
+

tldr@chopchop:~ $sudo journalctl _COMM=userdel -r

+
    + {% for item in user_deleted %} +
  • {{ item }}
  • + {% endfor %} +
+ +
+

tldr@chopchop:~ $sudo service --status-all

+
    + {% for item in list_active_services %} +
  • {{ item }}
  • + {% endfor %} +
+

tldr@chopchop:~ $getent group

+
    + {% for item in list_groups %} +
  • {{ item }}
  • + {% endfor %} +
- + + \ No newline at end of file