started generating epubs

main
vitrinekast 8 months ago
parent ca8a75363b
commit 30ec990d8e

1
.gitignore vendored

@ -1,3 +1,4 @@
.ipynb_checkpoints/ .ipynb_checkpoints/
*.json *.json
/logs /logs
book.html

@ -0,0 +1,6 @@
# Readme.MD
## Overview of the project structure
- fonts
- log-books

@ -10,7 +10,7 @@
<meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black"> <meta name="apple-mobile-web-app-status-bar-style" content="black">
<link rel="apple-touch-icon" sizes="180x180" href=""> <link rel="apple-touch-icon" sizes="180x180" href="">
<meta name="author" content=""> <meta name="author" content="html makers">
<meta name="description" content=""> <meta name="description" content="">
<meta name="keywords" content=""> <meta name="keywords" content="">
<meta property="og:type" content=""> <meta property="og:type" content="">
@ -18,8 +18,8 @@
<meta property="og:image" content=""> <meta property="og:image" content="">
<meta property="og:description" content=""> <meta property="og:description" content="">
<meta property="og:url" content=""> <meta property="og:url" content="">
<title>Document</title> <title>A log book</title>
<link rel="stylesheet" href="style.css">
</head> </head>
<body> <body>
@ -27,452 +27,470 @@
<h1>TL;DR</h1> <h1>TL;DR</h1>
<h2>too log didn't read</h2> <h2>too log didn't read</h2>
</header> </header>
<nav class="slider slider--top">
<label for="time">time</label>
<input type="range" min="0" max="68" id="time" value="0" class="fn-time-slider">
</nav>
<nav class="slider slider--left">
<label for="annotation">annotations</label>
<input type="range" value="0" min="0" max="400" class="vertical fn-annotation-slider">
</nav>
<main>
<div class="main__background">
<div class="main__background--radius"></div>
</div>
<div class="main__inner">
<article>
<h2>What happened today?</h2>
<small>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! </small>
<p><span class='hostname'>tldr@chopchop:~ $</span>sudo journalctl -S today -u kitchen-stove.service -u
kitchen-bin.service -u kitchen-fridge.service -r -n</p>
<ul> <article>
<h2>What happened today?</h2>
<pre><em>tldr@chopchop:~ $</em>sudo journalctl -S today -u kitchen-stove.service -u
kitchen-bin.service -u kitchen-fridge.service -r -n</pre>
<li>Mar 18 21:11:15 chopchop systemd[1]: Failed to start kitchen-fridge.service - Kitchen Fridge Service.</li>
<li>Mar 18 21:11:15 chopchop systemd[1]: kitchen-fridge.service: Failed with result 'exit-code'.</li> <pre><em>tldr@chopchop:~ $</em>uptime -s</pre>
<p>2024-03-18 07:51:34</p>
<li>Mar 18 21:11:15 chopchop systemd[1]: kitchen-fridge.service: Start request repeated too quickly.</li> <span class="annotation fn-annotatation" level="1">
This is common, the
fragility of these machines are more prominant than any cloud user expects. Partially because of scale,
partially because a lot of labour that happen in datacenters just escapes us all when we want to just upload
an image.
</span>
<li>Mar 18 21:11:15 chopchop systemd[1]: Stopped kitchen-fridge.service - Kitchen Fridge Service.</li>
<li>Mar 18 21:11:15 chopchop systemd[1]: kitchen-fridge.service: Scheduled restart job, restart counter is at 6.</li>
<li>Mar 18 21:11:15 chopchop systemd[1]: kitchen-fridge.service: Failed with result 'exit-code'.</li> <pre><em>tldr@chopchop:~ $</em>sudo journalctl _COMM=useradd -r -n 1 --output-fields=MES</pre>
<li>Mar 18 21:11:15 chopchop systemd[1]: kitchen-fridge.service: Main process exited, code=exited, status=2/INVALIDARGUMENT</li> <p>Mar 19 15:00:26 chopchop useradd[16047]: new user: name=chef, UID=1023, GID=1023, home=/home/chef, shell=/bin/bash, from=/dev/pts/3
</p>
<li>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</li>
<li>Mar 18 21:11:14 chopchop systemd[1]: Failed to start kitchen-stove.service - Kitchen Stove Service.</li> <span class="annotation fn-annotatation" level="2">
Users will be trusted with not just the keys and passwords to the "house" which is the server, but with a
portion of responsibility to keep it afloat and contribute to what makes it a community of practices (and
network of knowledge and dependence).
</span>
<li>Mar 18 21:11:14 chopchop systemd[1]: kitchen-stove.service: Failed with result 'exit-code'.</li>
</ul>
<pre><em>tldr@chopchop:~ $</em>sudo journalctl -S today _COMM=useradd -r</pre>
<p><span class='hostname'>tldr@chopchop:~ $</span>uptime -s</p> <span class="annotation fn-annotatation" level="1">
<p>2024-03-18 07:51:34</p> A level 1 annotation for users_created_today
</span>
<span class="annotation fn-annotatation" level="1">
This is common, the
fragility of these machines are more prominant than any cloud user expects. Partially because of scale,
partially because a lot of labour that happen in datacenters just escapes us all when we want to just upload
an image.
</span>
<p><span class='hostname'>tldr@chopchop:~ $</span>sudo journalctl _COMM=useradd -r -n 1 --output-fields=MESSAGE <pre><em>tldr@chopchop:~ $</em> grep 'install' /var/log/dpkg.log</pre>
</p> <ul>
<p>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
</p> <li>2024-03-10 15:16:14 install libtk8.6:armhf <none> 8.6.13-2</li>
<li>2024-03-10 15:16:15 install tk8.6-blt2.5:armhf <none> 2.5.3+dfsg-4.1</li>
<li>2024-03-10 15:16:15 install blt:armhf <none> 2.5.3+dfsg-4.1</li>
<li>2024-03-10 15:16:15 install python3-tk:armhf <none> 3.11.2-3</li>
<li>2024-03-12 14:29:01 install python3-markupsafe:armhf <none> 2.1.2-1</li>
<li>2024-03-12 14:29:02 install python3-jinja2:all <none> 3.1.2-1</li>
<li>2024-03-15 09:51:48 install libhttp-parser2.9:armhf <none> 2.9.4-5</li>
<li>2024-03-15 09:51:48 install libmbedx509-1:armhf <none> 2.28.3-1</li>
<li>2024-03-15 09:51:48 install libmbedtls14:armhf <none> 2.28.3-1</li>
<li>2024-03-15 09:51:48 install libgit2-1.5:armhf <none> 1.5.1+ds-1+deb12u1</li>
<li>2024-03-15 09:51:49 install bat:armhf <none> 0.22.1-4</li>
<li>2024-03-19 10:38:35 install fonts-font-awesome:all <none> 5.0.10+really4.7.0~dfsg-4.1</li>
<li>2024-03-19 10:38:35 install python3-dateutil:all <none> 2.8.2-2</li>
<li>2024-03-19 10:38:36 install ghp-import:all <none> 2.1.0-3</li>
<li>2024-03-19 10:38:36 install libjs-popper.js:all <none> 1.16.1+ds-6</li>
<li>2024-03-19 10:38:36 install libjs-bootstrap4:all <none> 4.6.1+dfsg1-4</li>
<li>2024-03-19 10:38:36 install libjs-highlight.js:all <none> 9.18.5+dfsg1-2</li>
<li>2024-03-19 10:38:37 install libjs-lunr:all <none> 2.3.9~dfsg-2</li>
<li>2024-03-19 10:38:37 install libjs-modernizr:all <none> 2.6.2+ds1-5</li>
<li>2024-03-19 10:38:37 install libjs-sizzle:all <none> 2.3.6+ds+~2.3.3-2</li>
<li>2024-03-19 10:38:37 install python3-tornado:armhf <none> 6.2.0-3</li>
<li>2024-03-19 10:38:38 install python3-livereload:all <none> 2.6.3-2</li>
<li>2024-03-19 10:38:38 install python3-colorama:all <none> 0.4.6-2</li>
<li>2024-03-19 10:38:38 install python3-click:all <none> 8.1.3-2</li>
<li>2024-03-19 10:38:38 install python3-joblib:all <none> 1.2.0-4</li>
<li>2024-03-19 10:38:39 install python3-regex:armhf <none> 0.1.20221031-1</li>
<li>2024-03-19 10:38:39 install python3-tqdm:all <none> 4.64.1-1</li>
<li>2024-03-19 10:38:39 install python3-nltk:all <none> 3.8-1</li>
<li>2024-03-19 10:38:40 install python3-lunr:all <none> 0.6.2-2</li>
<li>2024-03-19 10:38:40 install sphinx-rtd-theme-common:all <none> 1.2.0+dfsg-1</li>
<li>2024-03-19 10:38:40 install python3-markdown:all <none> 3.4.1-2</li>
<li>2024-03-19 10:38:40 install python3-mergedeep:all <none> 1.3.4-3</li>
<li>2024-03-19 10:38:40 install python3-yaml:armhf <none> 6.0-3+b1</li>
<li>2024-03-19 10:38:41 install python3-pyyaml-env-tag:all <none> 0.1-3</li>
<li>2024-03-19 10:38:41 install python3-watchdog:all <none> 2.2.1-1</li>
<li>2024-03-19 10:38:41 install mkdocs:all <none> 1.4.2+dfsg-2</li>
<span class="annotation fn-annotatation" level="2"> <li>2024-03-19 10:38:41 install node-jquery:all <none> 3.6.1+dfsg+~3.5.14-1</li>
Users will be trusted with not just the keys and passwords to the "house" which is the server, but with a
portion of responsibility to keep it afloat and contribute to what makes it a community of practices (and
network of knowledge and dependence).
</span>
<li>2024-03-19 10:38:42 install python3-argcomplete:all <none> 2.0.0-1</li>
<p><span class='hostname'>tldr@chopchop:~ $</span>sudo journalctl -S today _COMM=useradd -r</p> <li>2024-03-19 10:38:42 install python3-userpath:all <none> 1.8.0-1</li>
<span class="annotation fn-annotatation" level="1"> <li>2024-03-19 10:38:42 install pipx:all <none> 1.1.0-1</li>
A level 1 annotation for users_created_today
</span>
<li>2024-03-19 10:38:42 install python3-pyinotify:all <none> 0.9.6-2</li>
<li>2024-03-19 10:38:43 install python3-simplejson:armhf <none> 3.18.3-1</li>
<p><span class='hostname'>tldr@chopchop:~ $</span> grep 'install' /var/log/dpkg.log</p> <li>2024-03-19 10:42:57 install libjs-term.js:all <none> 0.0.7-4</li>
<ul>
<li>2024-03-10 15:16:14 install libtk8.6:armhf <none> 8.6.13-2</li> <li>2024-03-19 10:42:57 install python3-ptyprocess:all <none> 0.7.0-5</li>
<li>2024-03-10 15:16:15 install tk8.6-blt2.5:armhf <none> 2.5.3+dfsg-4.1</li> <li>2024-03-19 10:42:57 install python3-terminado:all <none> 0.17.0-1</li>
<li>2024-03-10 15:16:15 install blt:armhf <none> 2.5.3+dfsg-4.1</li> <li>2024-03-19 10:42:57 install python3-xstatic:all <none> 1.0.0-7</li>
<li>2024-03-10 15:16:15 install python3-tk:armhf <none> 3.11.2-3</li> <li>2024-03-19 10:42:58 install python3-xstatic-term.js:all <none> 0.0.7.0-4</li>
<li>2024-03-12 14:29:01 install python3-markupsafe:armhf <none> 2.1.2-1</li> </ul>
<li>2024-03-12 14:29:02 install python3-jinja2:all <none> 3.1.2-1</li>
<li>2024-03-15 09:51:48 install libhttp-parser2.9:armhf <none> 2.9.4-5</li>
<li>2024-03-15 09:51:48 install libmbedx509-1:armhf <none> 2.28.3-1</li>
<li>2024-03-15 09:51:48 install libmbedtls14:armhf <none> 2.28.3-1</li>
<li>2024-03-15 09:51:48 install libgit2-1.5:armhf <none> 1.5.1+ds-1+deb12u1</li> <pre><em>tldr@chopchop:~ $</em> grep 'remove' /var/log/dpkg.log</pre>
<ul>
<li>2024-03-15 09:51:49 install bat:armhf <none> 0.22.1-4</li> <li>2024-03-15 09:55:52 startup packages remove</li>
</ul> <li>2024-03-15 09:55:52 remove bat:armhf 0.22.1-4 <none></li>
</ul>
<pre><em>tldr@chopchop:~ $</em>sudo journalctl _COMM=systemd-login
--output-fields=MESSAGE -S today -g "New session" | grep -v 'Boot'</pre>
<ul>
</ul>
<p><span class='hostname'>tldr@chopchop:~ $</span> grep 'remove' /var/log/dpkg.log</p> <pre><em>tldr@chopchop:~ $</em>sudo journalctl _COMM=groupadd -r --output-fields=MESSAGE</pre>
<ul> <ul>
<li>2024-03-15 09:55:52 startup packages remove</li> </ul>
<li>2024-03-15 09:55:52 remove bat:armhf 0.22.1-4 <none></li> <pre><em>tldr@chopchop:~ $</em>sudo journalctl _COMM=groupremove -r --output-fields=MES</pre>
</ul> <ul>
</ul>
<p><span class='hostname'>tldr@chopchop:~ $</span>sudo journalctl _COMM=systemd-logind -r <pre><em>tldr@chopchop:~ $</em>sudo journalctl _COMM=usermod -r</pre>
--output-fields=MESSAGE -S today -g "New session" | grep -v 'Boot'</p> <ul>
<ul>
</ul> </ul>
<p><span class='hostname'>tldr@chopchop:~ $</span>sudo journalctl _COMM=groupadd -r --output-fields=MESSAGE</p>
<ul>
</ul> <pre><em>tldr@chopchop:~ $</em>sudo journalctl _COMM=userdel -r</pre>
<p><span class='hostname'>tldr@chopchop:~ $</span>sudo journalctl _COMM=groupremove -r --output-fields=MESSAGE <ul>
</p>
<ul>
</ul> </ul>
<p><span class='hostname'>tldr@chopchop:~ $</span>sudo journalctl _COMM=usermod -r</p>
<ul>
</ul> <hr />
<p><span class='hostname'>tldr@chopchop:~ $</span>sudo journalctl _COMM=userdel -r</p>
<ul>
</ul> <pre><em>tldr@chopchop:~ $</em>sudo service --status-all</pre>
<ul>
<hr/> <li>[ - ] alsa-utils</li>
<p><span class='hostname'>tldr@chopchop:~ $</span>sudo service --status-all</p>
<ul>
<li>[ - ] alsa-utils</li> <li> [ - ] apparmor</li>
<li> [ - ] apparmor</li> <li> [ + ] atop</li>
<li> [ + ] atop</li> <li> [ + ] atopacct</li>
<li> [ + ] atopacct</li> <li> [ + ] bluetooth</li>
<li> [ + ] bluetooth</li> <li> [ - ] console-setup.sh</li>
<li> [ - ] console-setup.sh</li> <li> [ + ] cron</li>
<li> [ + ] cron</li> <li> [ + ] cups</li>
<li> [ + ] cups</li> <li> [ + ] cups-browsed</li>
<li> [ + ] cups-browsed</li> <li> [ + ] dbus</li>
<li> [ + ] dbus</li> <li> [ + ] dphys-swapfile</li>
<li> [ + ] dphys-swapfile</li> <li> [ + ] exim4</li>
<li> [ + ] exim4</li> <li> [ + ] fake-hwclock</li>
<li> [ + ] fake-hwclock</li> <li> [ - ] fcgiwrap</li>
<li> [ - ] fcgiwrap</li> <li> [ - ] hwclock.sh</li>
<li> [ - ] hwclock.sh</li> <li> [ - ] incron</li>
<li> [ + ] incron</li> <li> [ - ] keyboard-setup.sh</li>
<li> [ - ] keyboard-setup.sh</li> <li> [ + ] kmod</li>
<li> [ + ] kmod</li> <li> [ + ] networking</li>
<li> [ + ] networking</li> <li> [ - ] nfs-common</li>
<li> [ - ] nfs-common</li> <li> [ + ] nginx</li>
<li> [ + ] nginx</li> <li> [ - ] paxctld</li>
<li> [ - ] paxctld</li> <li> [ - ] php7.4-fpm</li>
<li> [ - ] php7.4-fpm</li> <li> [ + ] php8.2-fpm</li>
<li> [ + ] php8.2-fpm</li> <li> [ + ] procps</li>
<li> [ + ] procps</li> <li> [ - ] pulseaudio-enable-autospawn</li>
<li> [ - ] pulseaudio-enable-autospawn</li> <li> [ + ] raspi-config</li>
<li> [ + ] raspi-config</li> <li> [ + ] rng-tools-debian</li>
<li> [ + ] rng-tools-debian</li> <li> [ - ] rpcbind</li>
<li> [ - ] rpcbind</li> <li> [ - ] rsync</li>
<li> [ - ] rsync</li> <li> [ - ] saned</li>
<li> [ - ] saned</li> <li> [ + ] ssh</li>
<li> [ + ] ssh</li> <li> [ - ] sudo</li>
<li> [ - ] sudo</li> <li> [ + ] triggerhappy</li>
<li> [ + ] triggerhappy</li> <li> [ + ] udev</li>
<li> [ + ] udev</li> <li> [ - ] uuidd</li>
<li> [ - ] uuidd</li> <li> [ - ] x11-common</li>
<li> [ - ] x11-common</li> </ul>
</ul> <pre><em>tldr@chopchop:~ $</em>getent group</pre>
<p><span class='hostname'>tldr@chopchop:~ $</span>getent group</p> <ul>
<ul>
<li>root:x:0:</li> <li>root:x:0:</li>
<li>daemon:x:1:</li> <li>daemon:x:1:</li>
<li>bin:x:2:</li> <li>bin:x:2:</li>
<li>sys:x:3:</li> <li>sys:x:3:</li>
<li>adm:x:4:xpub</li> <li>adm:x:4:xpub</li>
<li>tty:x:5:</li> <li>tty:x:5:</li>
<li>disk:x:6:</li> <li>disk:x:6:</li>
<li>lp:x:7:aleevadh,bernabereit,lorenzo,mania,mszw,mxrwho,river,senak,thijsoid,v,vitrinekast,wang,xpub,xpub,zerozeta,zz1,www-data</li> <li>lp:x:7:aleevadh,bernabereit,lorenzo,mania,mszw,mxrwho,river,senak,thijsoid,v,vitrinekast,wang,xpub,xpub,zerozeta,zz1,www-data</li>
<li>mail:x:8:</li> <li>mail:x:8:</li>
<li>news:x:9:</li> <li>news:x:9:</li>
<li>uucp:x:10:</li> <li>uucp:x:10:</li>
<li>man:x:12:</li> <li>man:x:12:</li>
<li>proxy:x:13:</li> <li>proxy:x:13:</li>
<li>kmem:x:15:</li> <li>kmem:x:15:</li>
<li>dialout:x:20:xpub,mb,river,joak,aleevadh,bernabereit,lorenzo,mania,mszw,mxrwho,river,senak,thijsoid,v,vitrinekast,wang,xpub,zerozeta,zz1,murtaugh,mb</li> <li>dialout:x:20:xpub,mb,river,joak,aleevadh,bernabereit,lorenzo,mania,mszw,mxrwho,river,senak,thijsoid,v,vitrinekast,wang,xpub,zerozeta,zz1,murtaugh,mb</li>
<li>fax:x:21:</li> <li>fax:x:21:</li>
<li>voice:x:22:</li> <li>voice:x:22:</li>
<li>cdrom:x:24:xpub</li> <li>cdrom:x:24:xpub</li>
<li>floppy:x:25:</li> <li>floppy:x:25:</li>
<li>tape:x:26:</li> <li>tape:x:26:</li>
<li>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</li> <li>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</li>
<li>audio:x:29:xpub,river,pulse,vitrinekast,liquidsoap</li> <li>audio:x:29:xpub,river,pulse,vitrinekast,liquidsoap</li>
<li>dip:x:30:</li> <li>dip:x:30:</li>
<li>www-data:x:33:vitrinekast</li> <li>www-data:x:33:vitrinekast</li>
<li>backup:x:34:</li> <li>backup:x:34:</li>
<li>operator:x:37:</li> <li>operator:x:37:</li>
<li>list:x:38:</li> <li>list:x:38:</li>
<li>irc:x:39:</li> <li>irc:x:39:</li>
<li>src:x:40:</li> <li>src:x:40:</li>
<li>gnats:x:41:</li> <li>gnats:x:41:</li>
<li>shadow:x:42:</li> <li>shadow:x:42:</li>
<li>utmp:x:43:</li> <li>utmp:x:43:</li>
<li>video:x:44:xpub</li> <li>video:x:44:xpub</li>
<li>sasl:x:45:</li> <li>sasl:x:45:</li>
<li>plugdev:x:46:xpub</li> <li>plugdev:x:46:xpub</li>
<li>staff:x:50:</li> <li>staff:x:50:</li>
<li>games:x:60:xpub</li> <li>games:x:60:xpub</li>
<li>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</li> <li>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,chef</li>
<li>nogroup:x:65534:</li> <li>nogroup:x:65534:</li>
<li>systemd-journal:x:101:</li> <li>systemd-journal:x:101:</li>
<li>systemd-network:x:102:</li> <li>systemd-network:x:102:</li>
<li>systemd-resolve:x:103:</li> <li>systemd-resolve:x:103:</li>
<li>input:x:104:xpub</li> <li>input:x:104:xpub</li>
<li>kvm:x:105:</li> <li>kvm:x:105:</li>
<li>render:x:106:xpub</li> <li>render:x:106:xpub</li>
<li>crontab:x:107:</li> <li>crontab:x:107:</li>
<li>netdev:x:108:xpub</li> <li>netdev:x:108:xpub</li>
<li>systemd-timesync:x:109:</li> <li>systemd-timesync:x:109:</li>
<li>messagebus:x:110:</li> <li>messagebus:x:110:</li>
<li>bluetooth:x:112:</li> <li>bluetooth:x:112:</li>
<li>avahi:x:113:</li> <li>avahi:x:113:</li>
<li>spi:x:999:xpub</li> <li>spi:x:999:xpub</li>
<li>i2c:x:998:xpub</li> <li>i2c:x:998:xpub</li>
<li>gpio:x:997:xpub</li> <li>gpio:x:997:xpub</li>
<li>systemd-coredump:x:996:</li> <li>systemd-coredump:x:996:</li>
<li>xpub:x:1000:</li> <li>xpub:x:1000:</li>
<li>vitrinekast:x:1001:</li> <li>vitrinekast:x:1001:</li>
<li>senak:x:1002:</li> <li>senak:x:1002:</li>
<li>lorenzo:x:1003:</li> <li>lorenzo:x:1003:</li>
<li>mxrwho:x:1004:</li> <li>mxrwho:x:1004:</li>
<li>bernabereit:x:1005:</li> <li>bernabereit:x:1005:</li>
<li>river:x:1006:</li> <li>river:x:1006:</li>
<li>v:x:1007:</li> <li>v:x:1007:</li>
<li>mania:x:1008:</li> <li>mania:x:1008:</li>
<li>aleevadh:x:1009:</li> <li>aleevadh:x:1009:</li>
<li>h4ck3r:x:1010:</li> <li>h4ck3r:x:1010:</li>
<li>thijsoid:x:1011:</li> <li>thijsoid:x:1011:</li>
<li>mszw:x:1012:</li> <li>mszw:x:1012:</li>
<li>zerozeta:x:1013:</li> <li>zerozeta:x:1013:</li>
<li>wang:x:1014:</li> <li>wang:x:1014:</li>
<li>zz1:x:1015:</li> <li>zz1:x:1015:</li>
<li>Debian-exim:x:114:</li> <li>Debian-exim:x:114:</li>
<li>rtkit:x:115:</li> <li>rtkit:x:115:</li>
<li>murtaugh:x:1017:</li> <li>murtaugh:x:1017:</li>
<li>mb:x:1016:</li> <li>mb:x:1016:</li>
<li>pulse:x:116:</li> <li>pulse:x:116:</li>
<li>pulse-access:x:117:</li> <li>pulse-access:x:117:</li>
<li>mlocate:x:118:</li> <li>mlocate:x:118:</li>
<li>uuidd:x:119:</li> <li>uuidd:x:119:</li>
<li>joak:x:1018:</li> <li>joak:x:1018:</li>
<li>sgx:x:120:</li> <li>sgx:x:120:</li>
<li>plocate:x:121:</li> <li>plocate:x:121:</li>
<li>polkitd:x:995:</li> <li>polkitd:x:995:</li>
<li>_ssh:x:111:</li> <li>_ssh:x:111:</li>
<li>pipewire:x:122:</li> <li>pipewire:x:122:</li>
<li>cristina:x:1019:</li> <li>cristina:x:1019:</li>
<li>strt:x:1020:</li> <li>strt:x:1020:</li>
<li>incron:x:123:</li> <li>incron:x:123:</li>
<li>chipchip:x:1021:</li> <li>chipchip:x:1021:</li>
<li>killer:x:1022:</li> <li>killer:x:1022:</li>
<li>tcpdump:x:124:</li> <li>tcpdump:x:124:</li>
<li>liquidsoap:x:125:</li> <li>liquidsoap:x:125:</li>
<li>lpadmin:x:126:river,xpub</li> <li>lpadmin:x:126:river,xpub</li>
<li>ssl-cert:x:127:</li> <li>ssl-cert:x:127:</li>
<li>scanner:x:128:saned</li> <li>scanner:x:128:saned</li>
<li>saned:x:129:</li> <li>saned:x:129:</li>
<li>colord:x:130:</li> <li>colord:x:130:</li>
</ul> <li>chef:x:1023:</li>
</article>
</div>
</main>
<aside>
<h3>whoami: Raspberry Pi 4 Model B Rev 1.4</h3>
<small>Linux chopchop 6.1.65-v8+ #1703 SMP PREEMPT Tue Dec 5 16:25:41 GMT 2023 aarch64 GNU/Linux, 12.1</small>
</aside>
<footer>
<h3> current residency 145.24.139.169</h3>
</footer>
<script type="text/javascript"> </ul>
var allFiles = ['log_2024-03-18_22:06:14.html', 'log_2024-03-18_22:13:35.html', 'log_2024-03-18_20:31:29.html', 'log_2024-03-18_21:05:28.html', 'log_2024-03-18_20:14:57.html', 'log_2024-03-18_20:30:59.html', 'log_2024-03-18_21:08:02.html', 'log_2024-03-18_22:14:45.html', 'log_2024-03-18_22:10:45.html', 'log_2024-03-18_21:20:03.html', 'log_2024-03-18_22:12:57.html', 'log_2024-03-18_18:15:58.html', 'log_2024-03-18_22:08:47.html', 'log_2024-03-18_20:31:58.html', 'log_2024-03-18_18:25:09.html', 'log_2024-03-18_21:06:54.html', 'log_2024-03-18_21:20:44.html', 'log_2024-03-18_21:06:45.html', 'log_2024-03-18_21:54:20.html', 'log_2024-03-18_20:45:19.html', 'log_2024-03-18_18:18:36.html', 'log_2024-03-18_21:04:35.html', 'log_2024-03-18_21:00:06.html', 'log_2024-03-18_21:12:06.html', 'log_2024-03-18_21:14:16.html', 'log_2024-03-18_16:17:21.html', 'log_2024-03-18_21:16:40.html', 'log_2024-03-18_21:08:38.html', 'log_2024-03-18_21:05:57.html', 'log_2024-03-18_18:25:35.html', 'log_2024-03-18_18:17:10.html', 'log_2024-03-18_21:09:16.html', 'log_2024-03-18_16:18:13.html', 'log_2024-03-18_20:41:42.html', 'log_2024-03-18_21:13:50.html', 'log_2024-03-18_18:15:40.html', 'log_2024-03-18_21:30:17.html', 'log_2024-03-18_18:09:27.html', 'log_2024-03-18_20:13:32.html', 'log_2024-03-18_16:16:48.html', 'log_2024-03-18_21:56:01.html', 'log_2024-03-18_22:06:28.html', 'log_2024-03-18_20:54:32.html', 'log_2024-03-18_20:47:36.html', 'log_2024-03-18_20:13:03.html', 'log_2024-03-18_21:07:35.html', 'log_2024-03-18_21:18:09.html', 'log_2024-03-18_16:04:58.html', 'log_2024-03-18_20:47:07.html', 'log_2024-03-18_20:48:33.html', 'log_2024-03-18_22:07:46.html', 'log_2024-03-18_18:11:42.html', 'log_2024-03-18_21:51:57.html', 'log_2024-03-18_20:31:07.html', 'log_2024-03-18_22:05:46.html', 'log_2024-03-18_21:30:51.html', 'log_2024-03-18_22:16:11.html', 'log_2024-03-18_21:15:19.html', 'log_2024-03-18_22:06:32.html', 'log_2024-03-18_21:15:46.html', 'log_2024-03-18_22:05:57.html', 'log_2024-03-18_22:15:47.html', 'log_2024-03-18_20:44:46.html', 'log_2024-03-18_20:45:07.html', 'log_2024-03-18_21:07:16.html', 'log_2024-03-18_21:09:41.html', 'log_2024-03-18_21:04:46.html', 'log_2024-03-18_21:27:43.html']; </article>
window.addEventListener("DOMContentLoaded", function () {
var nextDate = new Date("2024-03-19 01:38:41.543544");
var now = new Date();
var ms = nextDate - now;
console.log("start a timeout in , ", ms);
if (ms > 0) {
window.setTimeout(function () {
// TODO: add a check if there is still an internet connection
// TODO: add a check if there is actually new content?
// TODO: think about server time vs. client time
window.location.reload(true);
}, ms + 10000);
}
});
</script>
<script type="text/javascript" src="script.js"></script> <script type="text/javascript" src="script.js"></script>
</body> </body>

Binary file not shown.

Binary file not shown.

@ -1,354 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, viewport-fit=cover">
<meta name="format-detection" content="telephone=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<link rel="apple-touch-icon" sizes="180x180" href="">
<meta name="author" content="">
<meta name="description" content="">
<meta name="keywords" content="">
<meta property="og:type" content="">
<meta property="og:title" content="">
<meta property="og:image" content="">
<meta property="og:description" content="">
<meta property="og:url" content="">
<title>Document</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<h1>TL;DR</h1>
<h2>too log didn't read</h2>
<p>This log was generated on 2024-03-18 16:00:25.550452, the next will be available after 2024-03-18 19:00:25.550452</p>
</header>
<nav class="slider slider--top">
<label for="time">time</label>
<input type="range" min="0" max="100" id="time">
</nav>
<nav class="slider slider--left">
<label for="annotation">annotations</label>
<input class="vertical" type="range" value="0" min="0" max="400" id="annotation">
</nav>
<main>
<div class="main__background">
<div class="main__background--radius"></div>
</div>
<article>
<h2>What happened today?</h2>
<pre>uptime -s</pre>
<p>2024-03-18 07:51:34</p>
<span class="annotation fn-annotatation" level="1">
This is common, the fragility of these machines are more prominant than any cloud user expects. Partially because of scale, partially because a lot of labour that happen in datacenters just escapes us all when we want to just upload an image.
</span>
<p>the ones below do not have the "right" annotation levels</p>
<pre>last_user_added</pre>
<p>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
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for last_user_added
</span>
<pre>users_created_today</pre>
<p>-- No entries --
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for users_created_today
</span>
<pre>list_active_services</pre>
<p> [ - ] 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
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for list_active_services
</span>
<pre>list_groups</pre>
<p>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:
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for list_groups
</span>
<pre>list_package_installs</pre>
<p>2024-03-10 15:16:14 install libtk8.6:armhf <none> 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 <none> 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 <none> 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 <none> 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 <none> 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 <none> 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 <none> 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 <none> 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 <none> 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 <none> 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 <none> 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 <none>
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for list_package_installs
</span>
<pre>list_package_upgrade</pre>
<p>
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for list_package_upgrade
</span>
<pre>list_package_remove</pre>
<p>2024-03-15 09:55:52 startup packages remove
2024-03-15 09:55:52 remove bat:armhf 0.22.1-4 <none>
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for list_package_remove
</span>
<pre>device_info</pre>
<p>Raspberry Pi 4 Model B Rev 1.4
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for device_info
</span>
<pre>debian_version</pre>
<p>12.1
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for debian_version
</span>
<pre>kernel_version</pre>
<p>Linux chopchop 6.1.65-v8+ #1703 SMP PREEMPT Tue Dec 5 16:25:41 GMT 2023 aarch64 GNU/Linux
<span class="annotation fn-annotatation" level="1">
A level 1 annotation for kernel_version
</span>
</article>
</main>
<aside>
<h3>whoami: Raspberry Pi 4 Model B Rev 1.4</h3>
</aside>
<footer>
<h3> current residency 127.0.1.1
</h3>
</footer>
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript">
window.addEventListener("DOMContentLoaded", function() {
var nextDate = new Date("2024-03-18 19:00:25.550452");
var now = new Date();
var ms = nextDate - now;
console.log("start a timeout in , ", ms);
if(ms > 0) {
window.setTimeout(function() {
// TODO: add a check if there is still an internet connection
// TODO: add a check if there is actually new content?
// TODO: think about server time vs. client time
window.location.reload(true);
}, ms + 10000);
}
});
</script>
</body>
</html>

@ -1,82 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<h1>TL;DR</h1>
<h2>too log didn't read</h2>
</header>
<nav class="slider slider--top">
<label for="time">time</label>
<input type="range" min="0" max="100" id="time">
</nav>
<nav class="slider slider--left">
<label for="annotation">annotations</label>
<input class="vertical" type="range" value="0" min="0" max="400" id="annotation">
</nav>
<main>
<div class="main__background">
<div class="main__background--radius"></div>
</div>
<article>
<h2>What happened today?</h2>
<pre>10.0.0.1 - - [05/Mar/2024:14:27:39 +0000]
"GET /~murtaugh/__lab__/api/sessions?1709648858744
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.0.1 - - [05/Mar/2024:14:27:39 +0000] "GET /~murtaugh/__lab__/
api/kernelspecs?1709648858775 HTTP/1.1" 200 540
"https://hub.xpub.nl/chopchop/~murtaugh/__lab__/lab/tree/public_html/
T2_Assessments.ipynb" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
</pre>
<span class="annotation fn-annotatation" level="1">a new user was added, a network of trust grew</span>
<pre>lic_html/T2_Assessments.ipynb" "Mozilla/5.0 (X11; Linux x86_64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.0.1 - - [05/Mar/2024:14:27:39 +0000] "GET /~murtaugh/__lab__/
api/kernelspecs?1709648858775 HTTP/1.1" 200 540
"https://hub.xpub.nl/chopchop/~murtaugh/__lab__/lab/tree/public_html/
T2_Assessments.ipynb" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36" 10.0.0.1 - - [05/Mar/2024:14:27:39 +0000]
"GET /~murtaugh/__lab__/api/sessions?1709648858744
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.0.1 - - [05/Mar/2024:14:27:39 +0000] "GET /~murtaugh/__lab__/
api/kernelspecs?1709648858775 HTTP/1.1" 200 540
"https://hub.xpub.nl/chopchop/~murtaugh/__lab__/lab/tree/public_html/
T2_Assessments.ipynb" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"</pre>
<span class="annotation fn-annotatation" level="2">a new user was added, a network of trust grew</span>
<pre> lic_html/T2_Assessments.ipynb" "Mozilla/5.0 (X11; Linux x86_64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
10.0.0.1 - - [05/Mar/2024:14:27:39 +0000] "GET /~murtaugh/__lab__/
api/kernelspecs?1709648858775 HTTP/1.1" 200 540
"https://hub.xpub.nl/chopchop/~murtaugh/__lab__/lab/tree/public_html/
T2_Assessments.ipynb" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"</pre>
<span>there's a peak users logged into the server, if everyone uses
</article>
</main>
<aside>
<h3>whoami: Raspberry Pi 4 V1.4</h3>
</aside>
<footer>
<h3> current residency 127.0.0.1</h3>
</footer>
<script type="text/javascript" src="script.js"></script>
</body>
</html>

@ -0,0 +1,23 @@
body {
font-family: Eurostile;
}
ul {
list-style-type: none;
padding: 0 0;
margin-bottom: 1cm;
}
dfn, samp, dd {
text-align: center;
}
mark {
background: yellow;
display: block;
clear:both;
}
code {
font-family: monospace;
}

@ -5,11 +5,13 @@ import os
import fnmatch import fnmatch
# TODO: check sorting of these files (should be chronological) # TODO: check sorting of these files (should be chronological)
# Getting the dynamic variables
log_files = fnmatch.filter(os.listdir("./logs"), '*.html') log_files = fnmatch.filter(os.listdir("./logs"), '*.html')
now = datetime.today() now = datetime.today()
next_report = now + timedelta(hours=3) next_report = now + timedelta(hours=3)
log_file_name = "log_" + now.strftime("%Y-%m-%d_%H:%M:%S") + ".html"
# Execute a command on the command line. Based = used for piped commands
def run_command(command, based = False): def run_command(command, based = False):
result = subprocess.run(command, capture_output=True, input=based) result = subprocess.run(command, capture_output=True, input=based)
result.check_returncode() result.check_returncode()
@ -19,6 +21,9 @@ def run_command(command, based = False):
else: else:
return stripped return stripped
# Run all the commands for getting the logs, and assign to variables
print("start running the log commands");
last_user_added = subprocess.run(["sudo", "journalctl","_COMM=useradd","-r","-n", "1" , "--output-fields=MESSAGE"], capture_output=True) 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) 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","--output-fields=MESSAGE"]).splitlines() users_created_today = run_command(["sudo", "journalctl", "-S","today","_COMM=useradd","-r","--output-fields=MESSAGE"]).splitlines()
@ -38,16 +43,17 @@ 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_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) ip_address = run_command(['awk', '$1 == "inet" {gsub(/\/.*$/, "", $2); print $2}' ], based=ip_address_show.stdout)
print("start running the service commands, this sometimes takes longer");
logins_today_log = subprocess.run(["sudo", "journalctl","_COMM=systemd-logind","-r" , "--output-fields=MESSAGE", "-S", "today", "-g", "'New session'" ], capture_output=True) 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) 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() 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 # loading the jinja template environment
print("Filling the template");
env = Environment(loader=FileSystemLoader("templates")) env = Environment(loader=FileSystemLoader("templates"))
# # loading the template # loading the template (use template.jinja when generating the html webview)
template = env.get_template("template.jinja") template = env.get_template("book.jinja")
# rendering the template and storing the resultant text in variable output # rendering the template and storing the resultant text in variable output
output = template.render( output = template.render(
@ -78,10 +84,17 @@ output = template.render(
user_deleted = run_command(["sudo", "journalctl", "-S","today","_COMM=userdel","-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"
with open("index.html", "w") as f: print("Output the files");
# Export the html as book.html, which is used as an input for pandoc
with open("book.html", "w") as f:
print(output, file=f) print(output, file=f)
subprocess.run(["pandoc", "book.html", "-o", "logged_book.epub", "-c", "print.css", "--metadata", "title="+log_file_name], capture_output=True)
print("just generated a new book, also put it in the backlog of logs")
subprocess.run(["cp", "logged_book.epub", "log-books/log_" + now.strftime("%Y-%m-%d_%H:%M:%S") + ".epub"], capture_output=True)
print("Finished");
# At the moment, we are not storing logs in the log folder anymore
# with open(log_file_name, "w") as f:
# print(output, file=f)
with open(log_file_name, "w") as f:
print(output, file=f)

@ -39,8 +39,10 @@ body {
margin: 0 0; margin: 0 0;
padding: 0 0; padding: 0 0;
font-family: "DuctusRegular", sans-serif; font-family: "DuctusRegular", sans-serif;
background-color: var(--background); background-color: black;
display: grid; /* background-color: var(--background); */
/* display: grid; */
grid-template-columns: min-content 1fr min-content; grid-template-columns: min-content 1fr min-content;
grid-template-rows: min-content min-content 1fr min-content; grid-template-rows: min-content min-content 1fr min-content;
grid-gap: 1rem 1rem; grid-gap: 1rem 1rem;
@ -183,7 +185,7 @@ nav label {
} }
.annotation { .annotation {
background-color: white; background-color: pink;
color: black; color: black;
width: auto; width: auto;
max-height: 0px; max-height: 0px;

@ -0,0 +1,163 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, viewport-fit=cover">
<meta name="format-detection" content="telephone=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<link rel="apple-touch-icon" sizes="180x180" href="">
<meta name="author" content="html makers">
<meta name="description" content="">
<meta name="keywords" content="">
<meta property="og:type" content="">
<meta property="og:title" content="A log book of {{now}} from OG">
<meta property="og:image" content="">
<meta property="og:description" content="">
<meta property="og:url" content="">
<title>A log book of {{now}}</title>
</head>
<body>
<header>
<h1>TL;DR</h1>
<h2>too log didn't read</h2>
</header>
<article>
<h2>What happened today?</h2>
<pre><em>tldr@chopchop:~ $</em>sudo journalctl -S today -u kitchen-stove.service -u
kitchen-bin.service -u kitchen-fridge.service -r -n</pre>
{% if kitchen_services|length > 0 %}
<ul>
{% for item in kitchen_services %}
<li>{{ item }}</li>
{% endfor %}
</ul>
{% endif %}
<pre><em>tldr@chopchop:~ $</em>uptime -s</pre>
<p>{{ since_last_boot }}</p>
{% if since_last_boot is defined %}
<mark class="annotation fn-annotatation" level="1">
{% if days_since_last_boot|int > 14 %}This is unusual, we are used to ...{% else %}This is common, the
fragility of these machines are more prominant than any cloud user expects. Partially because of scale,
partially because a lot of labour that happen in datacenters just escapes us all when we want to just upload
an image.{% endif %}
</mark>
{% endif %}
<pre><em>tldr@chopchop:~ $</em>sudo journalctl _COMM=useradd -r -n 1 --output-fields=MES</pre>
<p>{{last_user_added}}</p>
{% if last_user_name is defined %}
<mark class="annotation fn-annotatation" level="1">
{{ last_user_name}} user/s was/were added [] days ago, and the network of trust grew ever so slightly.
</mark>
{% endif %}
{% if last_user_added is defined %}
<mark class="annotation fn-annotatation" level="2">
Users will be trusted with not just the keys and passwords to the "house" which is the server, but with a
portion of responsibility to keep it afloat and contribute to what makes it a community of practices (and
network of knowledge and dependence).
</mark>
{% endif %}
<pre><em>tldr@chopchop:~ $</em>sudo journalctl -S today _COMM=useradd -r</pre>
{% if users_created_today is defined %}
<mark class="annotation fn-annotatation" level="1">
A level 1 annotation for users_created_today
</mark>
{% endif %}
{% if list_package_installs|length > 0 %}
<pre><em>tldr@chopchop:~ $</em> grep 'install' /var/log/dpkg.log</pre>
<ul>
{% for item in list_package_installs %}
<li>{{ item }}</li>
{% endfor %}
</ul>
{% endif %}
{% if list_package_upgrade|length > 0 %}
<pre><em>tldr@chopchop:~ $</em> grep 'upgrade' /var/log/dpkg.log</pre>
<ul>
{% for item in list_package_upgrade %}
<li>{{ item }}</li>
{% endfor %}
</ul>
{% endif %}
{% if list_package_remove|length > 0 %}
<pre><em>tldr@chopchop:~ $</em> grep 'remove' /var/log/dpkg.log</pre>
<ul>
{% for item in list_package_remove %}
<li>{{ item }}</li>
{% endfor %}
</ul>
{% endif %}
<pre><em>tldr@chopchop:~ $</em>sudo journalctl _COMM=systemd-login
--output-fields=MESSAGE -S today -g "New session" | grep -v 'Boot'</pre>
<ul>
{% for item in logins_today %}
<li>{{ item }}</li>
{% endfor %}
</ul>
<pre><em>tldr@chopchop:~ $</em>sudo journalctl _COMM=groupadd -r --output-fields=MESSAGE</pre>
<ul>
{% for item in groups_created %}
<li>{{ item }}</li>
{% endfor %}
</ul>
<pre><em>tldr@chopchop:~ $</em>sudo journalctl _COMM=groupremove -r --output-fields=MES</pre>
<ul>
{% for item in groups_removed %}
<li>{{ item }}</li>
{% endfor %}
</ul>
<pre><em>tldr@chopchop:~ $</em>sudo journalctl _COMM=usermod -r</pre>
<ul>
{% for item in user_modified %}
<li>{{ item }}</li>
{% endfor %}
</ul>
<pre><em>tldr@chopchop:~ $</em>sudo journalctl _COMM=userdel -r</pre>
<ul>
{% for item in user_deleted %}
<li>{{ item }}</li>
{% endfor %}
</ul>
<hr />
<pre><em>tldr@chopchop:~ $</em>sudo service --status-all</pre>
<ul>
{% for item in list_active_services %}
<li>{{ item }}</li>
{% endfor %}
</ul>
<pre><em>tldr@chopchop:~ $</em>getent group</pre>
<ul>
{% for item in list_groups %}
<li>{{ item }}</li>
{% endfor %}
</ul>
</article>
<script type="text/javascript" src="script.js"></script>
</body>
</html>
Loading…
Cancel
Save