Kategorien
Technik

Bash-Prompt umgestalten

Wenn ich auf einem Linux-System unterwegs bin und auf der Bash das aktuelle Verzeichnis wissen möchte/muss, mache ich das meist ganz klassisch mit pwd (print working directory).

Auf meinem Uberspace soll das aber zukünftig direkt im Prompt (also der Eingabeaufforderung) der Bash stehen. Das kann man mit wenigen Handgriffen an der Umgebungsvariable PS1 ändern.

PS1

Der aktuelle Zustand wird mit echo $PS1 ausgelesen. Auf einem frisch eingerichteten Uberspace 7 bekommt man folgende Ausgabe (der User hat in diesem Beispiel den html-Ordner über den symbolischen Link im Home-Verzeichnis betreten):

[username@host html]$echo $PS1
[\u@\h \W]$

Angezeigt wird im Prompt also der angemeldete User, gefolgt von einem @-Zeichen, dem Hostnamen, einem Leerzeichen sowie dem aktuellen Verzeichnis und einem $-Zeichen. Das alles steht in eckigen Klammern.

Ich möchte aber nun, dass nicht nur zusätzlich der komplette Pfad angezeigt wird. Wenn ich schon mal dabei bin, ändere ich auch gleich noch ein paar andere Dinge. Insgesamt soll mein Prompt auf dem Server diese Form haben:

username@FQDN pfad $

Der Username, gefolgt von einem @, dem FQDN (fully qualified domain name), einem Leerzeichen, dem kompletten Pfad, einem weiteren Leerzeichen, dem $-Zeichen und schließlich einem zusätzlichen Leerzeichen. Die eckigen Klammern sollen ebenfalls verschwinden.

Folgendes muss hierfür in die PS1 eingetragen werden:

PS1='\u@\H \w $ '

Das Ergebnis schaut im html-Verzeichnis dann so aus:

username@host.uberspace.de ~/html $ 

Oder, wenn man das html-Verzeichnis nicht über den symbolischen Link im Home-Verzeichnis, sondern über die unterste Ebene des Systems betritt, eben so:

username@host.uberspace.de /var/www/virtual/username/html $ 

Eine Auflistung weiterer Variablen gibt es z.B. hier.

Das alles geht allerdings auch noch komplizierter. 😉

Mit Farben

Man kann den Prompt z.B. farblich gestalten. Die Form

username@host.uberspace.de:/var/www/virtual/username/html$

mit den Farben Grün und Hellblau würde sich so ganz gut machen:

PS1='\[3[0;32m\]\u\[\e[m\]\[3[0;32m\]@\[\e[m\]\[3[0;32m\]\H\[\e[m\]:\[3[1;34m\]\w\[\e[m\]\$ '

Mir persönlich gefällt dieses Beispiel sogar noch besser als das weiter oben, also lasse ich es auch so. Ein paar Farben können ja nicht schaden. 👍

Man könnte den Prompt natürlich noch mehr umgestalten, etwa auch mit Hintergrundfarben, aber das wäre mir persönlich dann schon wieder zu unübersichtlich.

Änderungen dauerhaft nutzen

Die Änderungen an der Umgebungsvariablen PS1 gehen freilich verloren, wenn man sich neu im System einloggt.

Damit diese dauerhaft gespeichert werden, muss man einen Eintrag in der .bashrc im Home-Verzeichnis hinterlegen. Dieser könnte etwa so aussehen:

# Bash-Prompt
# Default auf diesem System war:
# [\u@\h \W]$
PS1='\[3[0;32m\]\u\[\e[m\]\[3[0;32m\]@\[\e[m\]\[3[0;32m\]\H\[\e[m\]:\[3[1;34m\]\w\[\e[m\]\$ '

Abschließend die .bashrc neu einlesen:

source ~/.bashrc

Alternativ könnte man sich natürlich auch einfach neu am Server anmelden.

Kategorien
Technik

Erneut Datenschutz-Panne bei Facebook

Mal wieder ein Datenschutz-Problem bei Facebook. Seit Mai 2016 hat das Netzwerk ungefragt die E-Mail-Kontakte von 1,5 Millionen Usern abgegriffen. Aus Versehen natürlich. 🤦🏻‍♂️

Kategorien
Technik

Tiny Tiny RSS auf Uberspace 7

💡 Update am 24.05.2023: Da ich hin und wieder Anfragen zur Installation von Tiny Tiny RSS auf Uberspace 7 bekomme, sei einleitend angemerkt, dass ich mittlerweile FreshRSS nutze und auch empfehle.

Ich bin erst kürzlich (naja, im Dezember) von Uberspace 6 auf Uberspace 7 umgestiegen und wollte dort auch Tiny Tiny RSS installieren, was problemlos funktioniert hat.

Im Folgenden eine kleine Anleitung, wie man den RSS-Reader auf einem frisch eingerichteten Uberspace-7-Account installieren kann. Als Datenbank kommt MySQL MariaDB zum Einsatz, die Installation liegt in https://$USERNAME.uber.space/ttrss. Das geht natürlich auch mit eigenen Domains.

Installation

Download

Zuerst betreten wir den html-Ordner und klonen das Git-Repository in den Unterordner ttrss:

cd /var/www/virtual/$USERNAME/html/
git clone https://tt-rss.org/git/tt-rss.git ttrss

Datenbank

Jetzt erstellen wir eine neue Datenbank für Tiny Tiny RSS:

mysql -e "Create Database $USERNAME_ttrss"

Das Passwort wurde bei der Einrichtung des Uberspace-Accounts automatisch angelegt und ist im Homeverzeichnis zu finden:

cat ~/.my.cnf

Tiny Tiny RSS ist jetzt über das WWW erreichbar und kann eingerichtet werden. Die Default-Zugangsdaten lauten:

Username: admin
Passwort: password

Das Passwort sollte man natürlich am besten umgehend ändern. 😉

RSS-Feeds aktualisieren

Manuell

Wenn man seine RSS-Feeds nur am Desktop-Rechner oder Notebook liest, würde es prinzipell reichen, wenn man sich via Shell am Server anmeldet und den Daemon dort startet:

php /var/www/virtual/html/$USERNAME/ttrss/update.php --daemon

Mit Strg+c wird der wieder gestoppt. Alternativ könnte man das auch in ein Shell-Skript schreiben und dieses nach der Anmeldung am Server z.B. mit dem .bashrc-Alias ttrss starten.

Automatisiert

Das alles geht natürlich auch automatisch und ist ganz praktisch, wenn man tippfaul ist oder die Feeds auch via App auf dem Telefon lesen möchte.

Via Cronjob

Die Crontab mit crontab -e öffnen und z.B. folgende Zeilen eintragen:

# Tiny Tiny RSS
*/30 * * * * php /var/www/virtual/$USERNAME/html/tt-rss/update.php --feeds --quiet

Die Feeds werden hierbei alle 30 Minuten aktualisiert.

Als Dienst

Hierfür könnte z.B. im Ordner ~/scripts das Shell-Skript ttrss.sh mit folgendem Inhalt erstellt werden:

#!/bin/bash
cd /var/www/virtual/&USERNAME/html/ttrss/
exec php ./update_daemon2.php --daemon 2>&1

Ausführbar machen:

chmod u+rwx ~/scripts/ttrss.sh

Nun wird für dieses Skript ein Dienst eingerichtet (an dieser Stelle könnte auch, wie weiter oben bereits angesprochen, ein .bashrc-Alias Verwendung finden):

cd ~/etc/services.d/
nano ttrss.ini

Der Inhalt der ttrss.ini:

[program:ttrss]
command=/home/$USERNAME/scripts/ttrss.sh
autostart=yes
autorestart=yes

Die neue ttrss.ini einlesen:

supervisorctl reread

…und starten:

supervisorctl update

Sollte es keine Fehlermeldungen geben, läuft Tiny Tiny RSS jetzt als eigener Dienst auf dem Server, was man sich z.B. im Programm htop jetzt anschauen könnte.

Weitere Befehle:

Neustarten mit supervisorctl restart ttrss, stoppen mit supervisorctl stop ttrss, starten mit supervisorctl start ttrss.

Kategorien
Technik

Twitter aufräumen

Twitter, ein leidiges Thema bei mir. Vor 11 Jahren, als ich meinen Account registriert hatte, bin ich einigermaßen begeistert gestartet. Mittlerweile ist das in den vergangenen Jahren aber ein wenig eingeschlafen. Löschen möchte ich meinen Account (noch) nicht, aber doch mal ein wenig aufräumen.

Tweets löschen

Da gibt es ja allerhand Apps, die das mehr oder weniger gut können. Das habe ich auch in der Vergangenheit hin und wieder mal gemacht.

Follower löschen

Ich hatte, als ich Twitter noch regelmäßiger genutzt habe, um die 1200 Follower. In den letzten zwei Jahren war ich dort aber so gut wie gar nicht mehr aktiv. Dennoch waren es bis vorhin noch knapp über 1000 Follower. 90% von denen kannte ich überhaupt nicht. Unter diesen waren auch einige Marketing-Fuzzies und sonstiger Bodensatz des Internets. Das musste also alles weg.

Leider kann man Follower nicht einfach so entfernen. Man muss sie blockieren. Wenn man sie danach wieder ent-blockiert, folgen die Accounts einem nicht mehr. Es gibt eine praktische Chrome-Erweiterung, mit der man automatisiert Follower blockieren kann.

Jetzt hatte ich natürlich knapp 1000 blockierte User in meinem Account. Auch irgendwie doof. Hier habe ich allerdings eine Möglichkeit gefunden, diese blockierten User ohne zusätzliche Apps automatisiert aus dem Account zu entfernen.

Man loggt sich via Google Chrome in seinen Twitter-Account ein und wechselt in die Seite mit den blockierten Usern. Jetzt startet man die Chrome-Entwicklertools und öffnet die Konsole. Mit var autoScroll = setInterval(() => window.scrollTo(0, document.body.scrollHeight),1000); wird die Seite ganz ans Ende gescrollt. Für mich mit meinen 1000 Blockierten ganz praktisch. Ein clearInterval(autoScroll) stoppt das automatisierte Scrollen.

Abschließend werden die User mit $('.user-actions-follow-button').click() wieder ent-blockt.

Fertig. Man hat jetzt wieder einen »sauberen« Account ohne Follower und ohne blockierte User.

Kategorien
Allgemein Technik

Urheberrechtsreform

Uploadfilter und Leistungsschutzrecht kommen. Martin Sonneborn hat in einer schönen Grafik dargestellt, wer uns das eingebrockt hat.

Kategorien
Technik

Facebook hat Passwörter im Klartext gespeichert

Facebook hat offenbar seit 2012 Hunderte Millionen Facebook- und Zehntausende Instagram-Passwörter im Klartext gespeichert. 🤦🏻‍♂️

Kategorien
Technik

Logfile-Analyse mit GoAccess auf einem Uberspace

Ich wollte mir heute nach langer Zeit mal einen aktuellen Überblick über die Crawler verschaffen, die meine Seite so ansteuern.

Da ich keine Zeit für und Lust auf Piwik Matomo habe, war ich auf der Suche nach einem schlanken Kommandozeilen-Programm, das direkt auf dem Server läuft und dort auf die access_log des Apache zugreift.

Fündig geworden bin ich in GoAccess. Auf einem Uberspace lässt sich das schnell in Betrieb nehmen.

Download und Konfiguration

Zuerst laden wir es im Home-Verzeichnis herunter, entpacken es, benennen den Ordner um und betreten diesen:

cd ~
wget https://tar.goaccess.io/goaccess-1.3.tar.gz
tar -xzvf goaccess-1.3.tar.gz
mv goaccess-1.3/ goaccess/
cd goaccess

Anschließend konfigurieren:

./configure --enable-geoip --enable-utf8 --prefix=/home/$USERNAME

Jetzt lässt sich GoAccess auch schon starten:

goaccess -a -p ~/goaccess/config/goaccess.conf -f /readonly/$USERNAME/logs/access_log

Nach dem Start des Programms muss man mit der SPACE-Taste nun noch Log-Format bestätigen, z.B. NCSA Combined Log Format. Nach der Bestätigung mit Enter wird das Dashboard gestartet.

Alias einrichten

Damit man nicht bei jedem Mal so viel tippen muss, richtet man sich noch einen Alias in der .bashrc ein:

nano ~/.bashrc

Der Alias könnte so ausschauen:

alias goaccess-log='goaccess -a -p ~/goaccess/config/goaccess.conf -f /readonly/$USERNAME/logs/access_log'

Jetzt noch die .bashrc neu einlesen:

source ~/.bashrc

Fertig. Das Programm lässt sich nun mit goaccess-log starten.

Kategorien
Technik

30 Jahre World Wide Web

Das World Wide Web feiert heute seinen 30. Geburtstag. Bei der Gelegenheit habe ich meinem Weblog mal einen kleinen Retro-Anstrich verpasst. 😉

Auf dem Screenshot sieht man übrigens »WorldWideWeb«, den ersten Webbrowser der Welt. Noch ein Link-Tipp: http://info.cern.ch – home of the first website.

Kategorien
Verlinkt

Verlinkt (KW 10)

Kategorien
Verlinkt

Verlinkt (KW 9)