You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
314 lines
12 KiB
Django/Jinja
314 lines
12 KiB
Django/Jinja
<!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="">
|
|
<link rel="stylesheet" href="print.css">
|
|
<title>A log book of {{now}}</title>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
{% macro log_output(logs) -%}
|
|
{% if logs|length > 0 %}
|
|
<ul>
|
|
{% for item in logs %}
|
|
<li>{{ item }}</li>
|
|
{% endfor %}
|
|
</ul>
|
|
{% endif %}
|
|
{%- endmacro %}
|
|
|
|
<article>
|
|
<h1>Debug fiesta!</h1>
|
|
<pre>
|
|
last_user_added: {{ last_user_added}}
|
|
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}}
|
|
device_info: {{ device_info}}
|
|
days_since_last_boot : {{ days_since_last_boot }}
|
|
kitchen_services : {{ kitchen_services }}
|
|
ip_address : {{ ip_address }}
|
|
logins_today : {{ logins_today }}
|
|
list_groups : {{ list_groups }}
|
|
list_active_services : {{ list_active_services }}
|
|
debian_version : {{ debian_version }}
|
|
kernel_version : {{ kernel_version }}
|
|
hostname : {{ hostname }}
|
|
|
|
groups_created : {{ groups_created }}
|
|
groups_removed : {{ groups_removed }}
|
|
user_modified : {{ user_modified }}
|
|
user_deleted : {{ user_deleted }}
|
|
</pre>
|
|
</article>
|
|
|
|
<article>
|
|
<h1>Preface</h1>
|
|
<p>
|
|
TL;DR researches ways to make sense of the hidden labour that goes on in a feminist server through log files and
|
|
unlogged activity.
|
|
</p>
|
|
<p>
|
|
The unlogged activity of a server includes the physical labour, the decisions about shared spaces, the different
|
|
knowledges that depend on each other for the network to exis
|
|
</p>
|
|
<p>
|
|
Activity that is logged, is often compiled in inaccessible log files that track the work a server performs as
|
|
data. They're both hard to retrieve, hard to decipher, and have a bias towards the technological ecology,
|
|
prioritizing the labour of machines.
|
|
</p>
|
|
<p>
|
|
Chopchop is a a Raspberry Pi that is configured, maintained and used as a community server by XPUB1
|
|
</p>
|
|
<p>
|
|
This EPUB is a generated compilation of logs with annotations that provide context to the situatedness of this
|
|
technology. With one book a day, a diary of chopchop is kept, stored and shared.
|
|
</p>
|
|
</article>
|
|
|
|
<article>
|
|
<h1>The state of chopchop on {{now}}</h1>
|
|
<hr />
|
|
<p><em>tldr@chopchop:~ $</em>whoami</p>
|
|
<p>{{ device_info }}</p>
|
|
<p>{{ hostname }}</p>
|
|
<p>{{ ip_address }}</p>
|
|
<mark>
|
|
XPUB 1 users use chopchop as a shared community server.
|
|
chopchop is usually located in the Piet Zwart Wijnhaven building, although for this occassion it is resting on the
|
|
shelf bellow this e-reader.
|
|
</mark>
|
|
|
|
<p><em>tldr@chopchop:~ $</em>uptime -s</p>
|
|
<mark>
|
|
Uptime is the amount of time a server has been up, available, running, working, executing. This is time that is
|
|
not spent idle, but time spent busy serving.
|
|
</mark>
|
|
<p>{{ since_last_boot }}</p>
|
|
{% if since_last_boot is defined %}
|
|
<mark>
|
|
{% if days_since_last_boot|int > 14 %}This is unusual, we are used to our server crashing quite often, especially
|
|
when we are all sharing the space and editing at the same time. Our server, chopchop, chops up time into small
|
|
bits of surprise in which we learn that the technologies we rely on are never just up and running on their own.
|
|
They require people to care for them, to put in the time and the mindspace to figure out how to keep them running
|
|
and available.{% else %}This short of an uptime is common, the fragility of these machines are more prominent than
|
|
any cloud user expects. Partially because of scale, partially because a lot of labour that happens in datacenters
|
|
just escapes us all when we want to just upload an image, or just send a message, or just open a webpage.{% endif
|
|
%}
|
|
</mark>
|
|
{% endif %}
|
|
|
|
{% if users_created_today is defined %}
|
|
<p><em>tldr@chopchop:~ $</em>sudo journalctl -S today _COMM=useradd -r</p>
|
|
<mark>
|
|
Users are assigned to groups, which allow them rights to read or edit files, run commands or apply infrastructural
|
|
changes. For chopchop, we all have 'sudo rights': the ability to perform any command, including the more sensitive
|
|
ones. Sudo is a command that's short for 'superuser do', with it, a user has more privileges, like installing or
|
|
updating a package or performing a restart.
|
|
</mark>
|
|
|
|
{{ log_output(users_created_today) }}
|
|
{% if users_created_today|length > 0 %}
|
|
<mark> <code>{{ last_user_added_name | replace(", ", "") }}</code> user was added, and the network of trust grew ever so slightly. 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>
|
|
{% else %}
|
|
<mark>No new users were created today. The trust network remains the same size.</mark>
|
|
{% endif %}
|
|
|
|
{% endif %}
|
|
|
|
|
|
<p><em>tldr@chopchop:~ $</em> grep 'install' /var/log/dpkg.log</p>
|
|
|
|
<mark>
|
|
Packages are often installed to use different software or coding languages or build alternative tools. Often
|
|
users have to talk about and consider which packages they need and why, as well as how much storage they take up
|
|
and how they will change their interactions with and on their shared server.
|
|
</mark>
|
|
|
|
{{ log_output(list_package_installs) }}
|
|
|
|
{% if list_package_installs|length == 0 %}
|
|
<mark>
|
|
Today no new packages were installed...
|
|
</mark>
|
|
{% endif %}
|
|
|
|
{% if list_package_upgrade|length > 0 %}
|
|
<p><em>tldr@chopchop:~ $</em> grep 'upgrade' /var/log/dpkg.log</p>
|
|
|
|
<mark>
|
|
Out of the existing packages, these were upgraded:
|
|
</mark>
|
|
|
|
{{ log_output(list_package_upgrade) }}
|
|
|
|
<mark>
|
|
Packages are upgraded to fix previous bugs they had, or allow new options for usage they did not have prior.
|
|
</mark>
|
|
{% else %}
|
|
<mark> No existing packages were upgraded today.</mark>
|
|
{% endif %}
|
|
|
|
{% if list_package_remove|length > 0 %}
|
|
<p><em>tldr@chopchop:~ $</em> grep 'remove' /var/log/dpkg.log</p>
|
|
<mark>
|
|
These package were removed today:
|
|
</mark>
|
|
|
|
{{ log_output(list_package_remove) }}
|
|
|
|
<mark>
|
|
Packages could be removed because of consuming too much storage, not being used by the people who share the
|
|
server, or they are no longer secure. It is often good practice to 'do some spring cleaning' every now and
|
|
then and remove the packages that no longer serve you any purpose.
|
|
</mark>
|
|
|
|
{% else %}
|
|
<mark>
|
|
No packages were removed today.
|
|
</mark>
|
|
{% endif %}
|
|
|
|
<mark>
|
|
These actions are only a portion of the work... There's also the relationships of the people who care for
|
|
the server enough to maintain it... The hours they put into meeting each other, discussing and deciding on
|
|
how to move forward... They are sharing a digital landscape in which there are no hierarchies of landlords
|
|
and renters... So, they find different ways to make a space for learning and co-habitation... This list is
|
|
not exhaustive.
|
|
</mark>
|
|
<p><em>tldr@chopchop:~ $</em>sudo journalctl _COMM=systemd-login --output-fields=MESSAGE -S today -g "New
|
|
session" | grep -v 'Boot'</p>
|
|
<mark>
|
|
Users can login to the server using the SSH (secure shell) protocol. This allows a user to explore files,
|
|
make changes, run commands and speak to the server from their own machine. This is useful when working
|
|
remotely, and also to allow multiple users logging into the server simultaneously. Current XPUB1 students
|
|
have a chopchop user, as well as the tutors. Additionally, there are some users not associated with a
|
|
person, like our shared user 'chipchip' and users for running specific processes or creating projects.
|
|
</mark>
|
|
|
|
{% if logins_today is defined %}
|
|
{{ log_output(logins_today) }}
|
|
{% if logins_today|length > 0 %}
|
|
<mark>
|
|
These users have logged into our shared server chopchop, during the course of this day.
|
|
</mark>
|
|
{% else %}
|
|
<mark>it was quiet today.</mark>
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
{% if groups_created|length > 0 %}
|
|
<p><em>tldr@chopchop:~ $</em>sudo journalctl _COMM=groupadd -r --output-fields=MESSAGE</p>
|
|
<mark>
|
|
This command shows whether groups were added today.
|
|
</mark>
|
|
<ul>
|
|
{% for item in groups_created %}
|
|
<li>{{ item }}</li>
|
|
<mark>
|
|
These new working groups were added today. They might be used for creating new projects, maintaining or
|
|
managing parts of the server, or for organizational purposes.
|
|
</mark>
|
|
<b>check dis</b>
|
|
{% endfor %}
|
|
</ul>
|
|
{% endif %}
|
|
|
|
{% if groups_created|length < 0 %}
|
|
<mark>No groups were added today.</mark>
|
|
{% endif %}
|
|
<b>For some reason this if statement is not working, i didn't apply it to the next 4 categories because i
|
|
wanted to check it works first</b>
|
|
|
|
<p><em>tldr@chopchop:~ $</em>sudo journalctl _COMM=grouPremove -r --output-fields=MES</p>
|
|
<mark>
|
|
This command shows whether groups were removed today.
|
|
</mark>
|
|
|
|
<ul>
|
|
{% for item in groups_removed %}
|
|
<li>{{ item }}</li>
|
|
<mark>
|
|
These new groups were removed today. Most likely they were no longer relevant or purposeful.
|
|
</mark>
|
|
<b>check dis</b>
|
|
{% endfor %}
|
|
</ul>
|
|
|
|
<p><em>tldr@chopchop:~ $</em>sudo journalctl _COMM=usermod -r</p>
|
|
<mark>
|
|
This command shows whether users were modified today.
|
|
</mark>
|
|
<ul>
|
|
{% for item in user_modified %}
|
|
<li>{{ item }}</li>
|
|
<mark>
|
|
These users have been modified. Probably because someone changed their password, keys, or other
|
|
settings, or given new permissions.
|
|
</mark>
|
|
<b>check dis</b>
|
|
{% endfor %}
|
|
</ul>
|
|
|
|
<p><em>tldr@chopchop:~ $</em>sudo journalctl _COMM=userdel -r</p>
|
|
<mark>
|
|
This command shows whether users were removed today.
|
|
</mark>
|
|
<ul>
|
|
{% for item in user_deleted %}
|
|
<li>{{ item }}</li>
|
|
<mark>
|
|
It seems that a user was removed. This doesn't happen too often... It could be that they have done
|
|
something to lose the trust of the community. The circle of trust shrunk ever so slightly.
|
|
</mark>
|
|
<b>check dis</b>
|
|
{% endfor %}
|
|
</ul>
|
|
|
|
<p><em>tldr@chopchop:~ $</em>sudo service --status-all</p>
|
|
<mark>
|
|
These are all of the services that are active, running, working to execute requests that enable everything
|
|
on the server. They are marked with an [+].
|
|
The rest, marked with a [-], are idle, not running, or waiting to be activating upon sending a request.
|
|
</mark>
|
|
<ul>
|
|
{% for item in list_active_services %}
|
|
<li>{{ item }}</li>
|
|
{% endfor %}
|
|
</ul>
|
|
|
|
<p><em>tldr@chopchop:~ $</em>sudo journalctl -S today -u kitchen-stove.service -u
|
|
kitchen-bin.service -u kitchen-fridge.service -r -n</p>
|
|
{% if kitchen_services|length > 0 %}
|
|
<ul>
|
|
{% for item in kitchen_services %}
|
|
<li>{{ item }}</li>
|
|
{% endfor %}
|
|
</ul>
|
|
{% endif %}
|
|
|
|
<script type="text/javascript" src="script.js"></script>
|
|
</body>
|
|
|
|
</html> |