logcheck Regel Update 3 - Entfernen der Clamav Installation outdated Warnung

Anbei ist das dritte logcheck Regel Update, um folgende drei Zeilen auszufiltern:

Dec 22 06:52:39 server freshclam[358]: WARNING: Your ClamAV installation is OUTDATED!
Dec 22 06:52:39 server freshclam[358]: WARNING: Local version: 0.98.7 Recommended version: 0.99
Dec 22 06:52:39 server freshclam[358]: DON'T PANIC! Read http://www.clamav.net/support/faq

Das Update der Regeln spiegelt folgender Patch wider:

/etc/logcheck/ignore.d.server# git diff
diff --git a/logcheck/ignore.d.server/clamav-freshclam b/logcheck/ignore.d.server/clamav-freshclam
index 2608bd3..47e2cbe 100644
--- a/logcheck/ignore.d.server/clamav-freshclam
+++ b/logcheck/ignore.d.server/clamav-freshclam
@@ -5,3 +5,6 @@
 ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ freshclam\[[0-9]+\]: --------------------------------------$
 ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ freshclam\[[0-9]+\]: Database updated \([0-9]+ signatures\) from .* \(IP: [0-9.]+\)$
 ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ freshclam\[[0-9]+\]: Downloading daily-[0-9]+.cdiff \[100%\] ?$
+^\w{3} [ :0-9]{11} [._[:alnum:]-]+ freshclam\[[0-9]+\]: WARNING: Your ClamAV installation is OUTDATED!$
+^\w{3} [ :0-9]{11} [._[:alnum:]-]+ freshclam\[[0-9]+\]: DON'T PANIC! Read http://www.clamav.net/support/faq$
+^\w{3} [ :0-9]{11} [._[:alnum:]-]+ freshclam\[[0-9]+\]: WARNING: Local version: [0-9.]+ Recommended version: [0-9.]+$

Vergangene logcheck Regel Updates: #1 #2

Pacmans installierte Pakete und Pacmans Cache aufräumen

Ungenutzte Pakete entfernen

Beim Deinstallieren von Pakete sollte immer der Parameter -Rs anstatt nur -R verwendet werden, um auch alle nicht mehr benötigten Pakete mit zu deinstallieren:

$ pacman -Rs paketname

Eine Liste aller Pakete, die nicht mehr benötigt werden erhält man mit dem Kommando:

$ pacman -Qtdq

Man kann diese Liste auch gleich als Eingabe für das Entfernen durch pacman geben:

$ sudo pacman -Rns $(pacman -Qtdq)

Ob wirklich all die daraufhin gelisteten Pakete wirklich deinstalliert werden, sollte man unbedingt vorher überprüfen.

Pacman Cache säubern

Mit der Zeit sammeln sich auf einem Archlinuxsystem einige Pakete im Verzeichnis /var/cache/pacman/pkg/. Das sind vor allem verschiedene Versionen jemals installierter (und mittlerweile auch deinstallierter) Pakete.

Am einfachsten ist es die Pakete aufräumen zu lassen. Das geht mit dem Tool paccache. Mit den folgenden beiden Kommandos kann man zunächst eine Trockenübung machen, ob sich das Aufräumen überhaupt lohnt:

$ paccache -d

==> finished dry run: 4639 candidates (disk space saved: 19.6 GiB)
$ paccache -duk0

==> finished dry run: 476 candidates (disk space saved: 4.31 GiB)

Der erste Aufruf von paccache mit dem Parameter -d zählt die Anzahl der installierten Pakete, die gelöscht werden können. Dabei werden die drei neuesten Paketversionen noch behalten, sodass man im Zweifelsfall noch zu einer älteren Version downgraden kann. Beim zweiten Aufruf mit dem Parameter -duk0 werden alle nicht mehr installierten Pakete in allen Versionen gezählt und der dafür verbrauchte Speicherplatz gemessen.

Da sich bei mir das Aufräumen des Caches von pacman durchaus lohnt, kann ich die paccache Kommandos nun scharfschalten, in dem ich beim Parameter das d durch ein r ersetze:

$ paccache -r ; paccache -ruk0
==> Privilege escalation required
[sudo] Passwort: 

==> finished: 4639 packages removed (disk space saved: 19.6 GiB)
==> Privilege escalation required

==> finished: 239 packages removed (disk space saved: 1.34 GiB)

Für das eigentliche Löschen wird nun auch das Passwort benötigt, weil root Rechte gebraucht werden, um die Pakete zu löschen. Die Differenz zwischen dem Trockenlauf und dem eigentlichen Löschen der Pakete, die nicht mehr installiert sind, kann ich mir im Moment nicht erklären. Denn schließlich sind auch keine Löschkandidaten mehr gefunden worden:

$ paccache -d ; paccache -duk0
==> no candidate packages found for pruning
==> no candidate packages found for pruning

Weitere Infos

Weitere Infos gibt es wie immer im Archlinux Wiki:

Mirror verwalten unter Archlinux

Unter Archlinux sollte man ab und zu mal die Mirrorliste von pacman aktualisieren.

Dazu überschreibt man zunächst die aktuelle mit der neuesten mirrorlist Datei und erstellt anschließend eine Kopie davon:

$ sudo cp /etc/pacman.d/mirrorlist.pacnew /etc/pacman.d/mirrorlist
$ sudo cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.forranking

In der Kopie müssen nun zunächst alle Mirrorserver aktiviert. Das geht am einfachsten mit sed:

$ sudo sed -i 's/^#Server/Server/' /etc/pacman.d/mirrorlist.forranking

Anschließend kann mit dem Programm rankmirrors eine Liste der drei schnellsten Mirror erstellt werden. Dies kann einige Minuten dauern.

$ sudo rankmirrors /etc/pacman.d/mirrorlist.forranking -n 3
# Server list generated by rankmirrors on 2015-12-02
##
## Arch Linux repository mirrorlist
## Generated on 2015-11-22
##
## Worldwide
## Australia
## Austria
## Bangladesh
## Belarus
## Belgium
## Brazil
## Bulgaria
## Canada
## Chile
## China
## Colombia
## Croatia
## Czech Republic
## Denmark
## Ecuador
## France
## Germany
## Greece
## Hungary
## Iceland
## India
## Indonesia
## Iran
## Ireland
## Israel
## Italy
## Japan
## Kazakhstan
## Latvia
## Lithuania
## Luxembourg
## Macedonia
## Netherlands
## New Caledonia
## New Zealand
## Norway
## Philippines
## Poland
## Portugal
## Romania
## Russia
## Serbia
## Singapore
## Slovakia
## South Africa
## South Korea
## Spain
## Sweden
## Switzerland
## Taiwan
## Turkey
## Ukraine
## United Kingdom
## United States
## Vietnam
Server = http://ftp5.gwdg.de/pub/linux/archlinux/$repo/os/$arch
Server = http://mirror.23media.de/archlinux/$repo/os/$arch
Server = http://ftp.hosteurope.de/mirror/ftp.archlinux.org/$repo/os/$arch

Abschließend werden die drei gelisteten Server noch manuell in der eigentlich mirrorlist Datei für pacman aktiviert und die Arbeitskopie der Mirrorliste gelöscht.

$ sudo vi /etc/pacman.d/mirrorlist
$ sudo rm /etc/pacman.d/mirrorlist.forranking

In Kodi die Tasten der Fernbedienung neu belegen am Beispiel von OpenELEC

In Kodi kann man die Tastenbelegung der Fernbedienung ändern. In meinem Fall möchte die Taste mit dem roten Button so belegen, dass das Kontextmenü aufgeht, wenn ich diese drücke. Der rote Knopf wird standardmäßig nicht von Kodi verwendet, sodass er keine Belegung haben sollte.

Fernbedienung mit hervorgehobenem roten Knopf

Wenn man OpenELEC nutzt, muss man dazu eine Datei im Verzeichnis /storage/.kodi/userdata/keymaps/remote.xml anlegen, sofern diese Datei noch nicht existiert. Sollte die Datei bereits angelegt sein, muss man diese anpassen. Falls nicht OpenELEC verwendet wird, muss dies im Kodi Konfigurationsverzeichnis erstellt werden. Das könnte in anderen Kodidistributionen z.B. unter dem Pfad ~/.kodi/userdata/keymaps/remote.xml sein.

Existiert bereits eine remote.xml Datei muss nach dem Tag <red> für den roten Knopf der Fernbedienung gesucht werden. Zwischen den öffnenden und schließenden Tag muss das Schlüsselwort ContextMenu geschrieben sein. Anschließend muss man die Datei abspeichern und Kodi neustarten.

Nun folgt ein minimalistisches Beispiel falls eine remote.xml Datei noch nicht existiert hat und erstmalig angelegt werden muss. Der Inhalt der Datei /storage/.kodi/userdata/keymaps/remote.xml könnte wie folgt aussehen:

<?xml version="1.0" encoding="UTF-8"?>
<keymap>
  <global>
    <remote>
      <red>ContextMenu</red>
    </remote>
  </global>
</keymap>

Auch nach dem Anlegen dieser neuen Datei muss gespeichert und neugestartet werden.

Wenn man den neu belegten roten Knopf der Fernbedienung nun nutzt, erscheint ein Kontextmenu wie in dem folgenden Beispielbild zu sehen ist:

Screenshot von Kodi mit aktiviertem Kontextmenü

Tiny Tiny RSS systemd Service Unit

Inspiriert von TauSys Blogeintrag Tiny Tiny RSS Update-Daemon unter systemd betreiben habe ich mein init.d Script für TT-RSS mal entfernt und durch eine systemd Service Unit ersetzt. Ganz übernehmen konnte ich Tausys Unit nicht, minimale Änderungen mussten her und nun sieht meine Unit so aus:

$ cat /lib/systemd/system/ttrss-update.service
[Unit]
Description=Tiny Tiny RSS update daemon
After=network.target mysql.service
Requires=network.target remote-fs.target nss-lookup.target mysql.service

[Service]
User=www-data
Group=www-data
WorkingDirectory=/var/www/ttrss
Type=simple
StandardOutput=null
StandardError=syslog
ExecStart=/usr/bin/php ./update_daemon2.php
PrivateTmp=true
InaccessibleDirectories=/home /root /boot /opt /mnt /media
ReadOnlyDirectories=/etc /usr

[Install]
WantedBy=multi-user.target