Skip to content

Wenn dir der Redis-Server flöten geht....

Verschoben Redis
  • Ich glaube ich habe die letzten zwei Stunden gaaaaanz viel gelernt........

    Durch einen dummen Fehler ist mir unerwartet der Redis-Server abhanden gekommen 😞 Die Fehlersuche hat etwas Zeit in Anspruch genommen 🙂 Die Datensicherung hat aber gut funktioniert - ohne hätte ich jetzt hier in diesem Forum von vorne anfangen können. Es sind manchmal die kleinen Dingen, die einem ganz schön Nerven kosten können. Morgen dann für alle was ausführlicher, was genau passiert ist. Jetzt ab ins Bett...

  • An die Profis, besser jetzt nicht weiter lesen 😉

    Was war passiert? Ich hatte meine Nextcloud Instanz kaputt gemacht (ist ein anderes Thema), bin dann aus irgendeinem Grund auf den Root und habe mal ein

    apt update
    

    angestossen. Also, nichts besonderes, so wie immer. Es war schon was später (keine gute Idee) und so habe ich nicht genau hingesehen, was da reinkommt. Es war irgendwas mit zwei libs und redis-server. Und auf Return geklickt. Dann das.

    Preparing to unpack .../redis-server_3%3a3.2.6-3+deb9u3_amd64.deb ...
    Unpacking redis-server (3:3.2.6-3+deb9u3) over (3:3.2.6-3+deb9u2) ...
    Preparing to unpack .../redis-tools_3%3a3.2.6-3+deb9u3_amd64.deb ...
    Unpacking redis-tools (3:3.2.6-3+deb9u3) over (3:3.2.6-3+deb9u2) ...
    Setting up redis-tools (3:3.2.6-3+deb9u3) ...
    Processing triggers for systemd (232-25+deb9u11) ...
    Processing triggers for man-db (2.7.6.1-2) ...
    Setting up redis-server (3:3.2.6-3+deb9u3) ...
    Job for redis-server.service failed because of unavailable resources or another system error.
    See "systemctl status redis-server.service" and "journalctl -xe" for details.
    invoke-rc.d: initscript redis-server, action "start" failed.
    ● redis-server.service - Advanced key-value store
       Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
       Active: activating (auto-restart) (Result: resources) since Tue 2019-07-16 21:59:15 CEST; 3ms ago
         Docs: http://redis.io/documentation,
               man:redis-server(1)
      Process: 23442 ExecStopPost=/bin/run-parts --verbose /etc/redis/redis-server.post-down.d (code=exited, status=0/SUCCESS)
      Process: 23439 ExecStop=/bin/kill -s TERM $MAINPID ^[[0;1;31m(code=exited, status=1/FAILURE)^[[0m
      Process: 23435 ExecStop=/bin/run-parts --verbose /etc/redis/redis-server.pre-down.d (code=exited, status=0/SUCCESS)
      Process: 23430 ExecStartPost=/bin/run-parts --verbose /etc/redis/redis-server.post-up.d (code=exited, status=0/SUCCESS)
      Process: 23427 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)
      Process: 23422 ExecStartPre=/bin/run-parts --verbose /etc/redis/redis-server.pre-up.d (code=exited, status=0/SUCCESS)
     Main PID: 826 (code=exited, status=0/SUCCESS)
    

    Und Bam, Forum kaputt, Redis-Server läuft nicht mehr. Ich habe dann, vermutlich auch weil ich eigentlich schon ins Bett wollte, etwas gebraucht um überhaupt zu verstehen was da passiert war. Wenn man es geschnallt hat, ist es eigentlich relativ einfach.

    Durch die Aktualisierung wurde der Redis-Server auf dem Server aktualisiert. Nur dumm, das das Paket auf dem Server wesentlich aktueller ist, als das was aktualisiert wurde 😞 Warum, war das so? Der Redis-Server auf dem Root ist zu alt, so das ich irgendwann in der Anfangszeit der Redis-Server mal selbst gebaut habe. Das war mir in dem Moment aber nicht mehr so klar.

    Nachdem es dann Klick gemacht hatte, wusste ich was zu tuen war. Den Redis-Server runterhauen, aktuellen Redis-Server runterladen und bauen. Dann entsprechende Konfig und Datenbank wieder auf den Server schreiben, die Datenbank war nämlich weg! Glück, das mein Backupkonzept funktioniert.

    Nach einigen Hürden, ja es war spät, lief das Forum dann wieder. Puuh - Glück gehabt.

    Was lernt man daraus?

    • Ein gutes Backupkonzept ist absolut notwendig. Ich habe gemerkt, das ich da noch was verbessern kann.

    • Pakete die man selber baut, muss man daran hindern, das diese aktualisiert werden (Siehe unten)

    • Wenn es mal knallt, Ruhe bewahren. Man macht sonst nur noch mehr kaputt.

    Paket blocken

    Mit dem Befehl

    apt-mark hold redis-server
    

    kann man ein Paket von der Aktualisierung ausnehmen. Eine Liste der Pakete gibt es mit

    apt-mark showhold
    

    Damit müsste ich meinen dummen Fehler jetzt eigentlich für die Zukunft verhindert haben.

    Wenn hier jemand einen Fehler sieht, bitte ich um freundliche Korrektur. Ich bin mir da nicht so zu 100% sicher, das das was ich da geschrieben habe Sinn macht. Danke!

  • So, nach einer kleinen Pause und ein wenig nachdenken ist mir doch noch was eingefallen 😉

    Backports! Man so einfach!

    nano /etc/apt/sources.list
    

    Das folgende eintragen.

    # backports
    deb http://deb.debian.org/debian stretch-backports main
    

    Danach ein

    apt update
    

    Und dann schauen wir uns mal die Version an....

    apt -t stretch-backports search redis-server
    Sorting... Done
    Full Text Search... Done
    golang-github-stvp-tempredis-dev/stretch-backports 0.0~git20160122.0.83f7aae-1~bpo9+1 all
      Go package to start and stop temporary redis-server processes
    
    libtest-redisserver-perl/oldstable,oldstable 0.20-1 all
      redis-server runner for tests
    
    python-hiredis/oldstable,oldstable 0.2.0-1+b2 amd64
      redis protocol reader for Python 2.X using hiredis
    
    python3-hiredis/oldstable,oldstable 0.2.0-1+b2 amd64
      redis protocol reader for Python using hiredis
    
    redis/stretch-backports 5:5.0.3-3~bpo9+2 all
      Persistent key-value database with network interface (metapackage)
    
    redis-server/stretch-backports 5:5.0.3-3~bpo9+2 amd64 [residual-config]
      Persistent key-value database with network interface
    

    Und die habe ich gestern Abend gebaut.

    127.0.0.1:6379> INFO
    # Server
    redis_version:5.0.5
    

    Ok, das schmerzt jetzt 😛

  • Restic v0.17.3 released

    Linux restic linux
    1
    0 Stimmen
    1 Beiträge
    129 Aufrufe
    Niemand hat geantwortet
  • Nextcloud Hub8 (29.0.0) released

    Nextcloud nextcloud linux hub8
    2
    4
    0 Stimmen
    2 Beiträge
    241 Aufrufe
    FrankMF
    Ich möchte hier aber auch nicht unterschlagen, dass viele der Neuerungen bei meiner Installation nicht funktionieren. Hauptsächlich Funktionen im Zusammenhang mit der neuen Teams Funktion. Da ich schon sehr lange Nextcloud nutze, kenne ich das von den 0.0er Versionen. Da braucht es erst mal ein paar Updates, bis das fehlerfrei funktioniert.
  • Raspberry Pi5 - Netzteil

    RaspberryPi raspberrypi linux
    1
    0 Stimmen
    1 Beiträge
    403 Aufrufe
    Niemand hat geantwortet
  • ufw - Die einfache Firewall

    Linux ufw linux
    3
    0 Stimmen
    3 Beiträge
    263 Aufrufe
    FrankMF
    Beispiel um eingehend einen Port für eine IP-Adresse zu erlauben. ufw allow from 1.1.1.1 to any port 8000
  • Vorstellung Star64

    Hardware star64 risc-v linux
    2
    1
    0 Stimmen
    2 Beiträge
    102 Aufrufe
    FrankMF
    Ich konnte heute einen ergattern und die 8GB RAM Version ist unterwegs. Achtung, aktuell ist die Softwareunterstützung fast nicht vorhanden!
  • Kernel 5.19-rc1

    Quartz64 linux quartz64
    2
    0 Stimmen
    2 Beiträge
    173 Aufrufe
    FrankMF
    Man kann dann den aktuell Kernel [root@frank-pc ~]# uname -a Linux frank-pc 5.17.0-3-MANJARO-ARM-Q64 #1 SMP PREEMPT Sat Jun 4 14:34:03 UTC 2022 aarch64 GNU/Linux mit diesem Befehl aktualisieren sudo pacman -S linux-rc linux-rc-headers Man wechselt dann vom Zweig linux-quartz64 auf linux-rc. Der Zweig linux-rc entspricht dem Mainline Kernel. Achtung! Zum Zeitpunkt der Erstellung des Beitrages crasht das Eure Installation!! Ursache ist, das es aktuell diesen Kernel linux-rc-5.18.rc7-7-aarch64 installiert, dieser enthält aber keine Unterstützung für das Modell B. Und zum Nachschauen, ob schon was Neues da ist [root@frank-pc ~]# pacman -Ss linux-rc linux-rc-headers core/linux-rc-headers 5.18.rc7-7 Header files and scripts for building modules for linux kernel - AArch64 multi-platform (release candidate)
  • PCIe WIFI6 Karte

    Linux wifi5 linux
    4
    4
    0 Stimmen
    4 Beiträge
    305 Aufrufe
    K
    alles gut. wenn zeit und laune, danke
  • ROCKPro64 - Debian Bullseye Teil 1

    ROCKPro64 debian linux rockpro64
    17
    4
    0 Stimmen
    17 Beiträge
    2k Aufrufe
    FrankMF
    Durch diesen Beitrag ist mir mal wieder eingefallen, das wir das erneut testen könnten Also die aktuellen Daten von Debian gezogen. Das Image gebaut, könnt ihr alles hier im ersten Beitrag nachlesen. Da die eingebaute Netzwerkschnittstelle nicht erkannt wurde, habe ich mal wieder den USB-to-LAN Adapter eingesetzt. Bus 005 Device 002: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet Die Installation wollte ich auf einem NVMe Riegel installieren. Die Debian Installation durchgezogen und nach erfolgreicher Installation neugestartet. Und siehe da, ohne das man alles möglich ändern musste, bootete die NVMe SSD Eingesetzter uboot -> 2020.01-ayufan-2013...... Die nicht erkannte LAN-Schnittstelle müsste an nicht freien Treibern liegen, hatte ich da irgendwo kurz gelesen. Beim Schreiben dieses Satzes kam die Nacht und ich konnte noch mal drüber schlafen. Heute Morgen, beim ersten Kaffee, dann noch mal logischer an die Sache ran gegangen. Wir schauen uns mal die wichtigsten Dinge an. root@debian:~# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 62:03:b0:d6:dc:b3 brd ff:ff:ff:ff:ff:ff 3: enx000acd26e2c8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0a:cd:26:e2:c8 brd ff:ff:ff:ff:ff:ff inet 192.168.3.208/24 brd 192.168.3.255 scope global dynamic enx000acd26e2c8 valid_lft 42567sec preferred_lft 42567sec inet6 fd8a:6ff:2880:0:20a:cdff:fe26:e2c8/64 scope global dynamic mngtmpaddr valid_lft forever preferred_lft forever inet6 2a02:908:1260:13bc:20a:xxxx:xxxx:xxxx/64 scope global dynamic mngtmpaddr valid_lft 5426sec preferred_lft 1826sec inet6 fe80::20a:cdff:fe26:e2c8/64 scope link valid_lft forever preferred_lft forever Ok, er zeigt mir die Schnittstelle eth0 ja an, dann kann es an fehlenden Treibern ja nicht liegen. Lässt dann auf eine fehlerhafte Konfiguration schließen. Nächster Halt wäre dann /etc/network/interfaces Das trägt Debian ein # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug enx000acd26e2c8 iface enx000acd26e2c8 inet dhcp # This is an autoconfigured IPv6 interface iface enx000acd26e2c8 inet6 auto Gut, bei der Installation hat Debian ja nur die zusätzliche Netzwerkschnittstelle erkannt, folgerichtig ist die auch als primäre Schnittstelle eingetragen. Dann ändern wir das mal... # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface #allow-hotplug enx000acd26e2c8 allow-hotplug eth0 #iface enx000acd26e2c8 inet dhcp iface eth0 inet dhcp # This is an autoconfigured IPv6 interface #iface enx000acd26e2c8 inet6 auto iface eth0 inet6 auto Danach einmal alles neu starten bitte systemctl status networking Da fehlte mir aber jetzt die IPv4 Adresse, so das ich einmal komplett neugestartet habe. Der Ordnung halber, so hätte man die IPv4 Adresse bekommen. dhclient eth0 Nachdem Neustart kam dann das root@debian:/etc/network# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 62:03:b0:d6:dc:b3 brd ff:ff:ff:ff:ff:ff inet 192.168.3.172/24 brd 192.168.3.255 scope global dynamic eth0 valid_lft 42452sec preferred_lft 42452sec inet6 fd8a:6ff:2880:0:6003:b0ff:fed6:dcb3/64 scope global dynamic mngtmpaddr valid_lft forever preferred_lft forever inet6 2a02:908:1260:13bc:6003:xxxx:xxxx:xxxx/64 scope global dynamic mngtmpaddr valid_lft 5667sec preferred_lft 2067sec inet6 fe80::6003:b0ff:fed6:dcb3/64 scope link valid_lft forever preferred_lft forever 3: enx000acd26e2c8: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 00:0a:cd:26:e2:c8 brd ff:ff:ff:ff:ff:ff Fertig, eth0 läuft. Nun kann man den zusätzlichen Adapter entfernen oder halt konfigurieren, wenn man ihn braucht. Warum der Debian Installer die eth0 nicht erkennt verstehe ich nicht, aber vielleicht wird das irgendwann auch noch gefixt. Jetzt habe ich erst mal einen Workaround um eine Installation auf den ROCKPro64 zu bekommen.