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 😛

  • MongoDB - Erste Erfahrungen

    Linux
    2
    0 Stimmen
    2 Beiträge
    56 Aufrufe
    FrankMF

    So frisch von der MongoDB Front und wieder viel gelernt, weil beim Üben macht man Fehler 🙂

    Oben war ja mongodump & mongorestore von der KI empfohlen. Hier das wie ich es gemacht habe.

    mongodump frank@redis-stack:~$ mongodump -u frank -p '<password>' --host 192.168.3.9 --authenticationDatabase admin -d portfolio -o mongodump/ 2024-04-06T09:29:25.174+0200 writing portfolio.stockList to mongodump/portfolio/stockList.bson 2024-04-06T09:29:25.175+0200 writing portfolio.users to mongodump/portfolio/users.bson 2024-04-06T09:29:25.175+0200 done dumping portfolio.stockList (8 documents) 2024-04-06T09:29:25.176+0200 writing portfolio.total_sum to mongodump/portfolio/total_sum.bson 2024-04-06T09:29:25.177+0200 done dumping portfolio.total_sum (1 document) 2024-04-06T09:29:25.177+0200 writing portfolio.old_total_sum to mongodump/portfolio/old_total_sum.bson 2024-04-06T09:29:25.177+0200 writing portfolio.stocks to mongodump/portfolio/stocks.bson 2024-04-06T09:29:25.177+0200 done dumping portfolio.users (4 documents) 2024-04-06T09:29:25.178+0200 writing portfolio.settings to mongodump/portfolio/settings.bson 2024-04-06T09:29:25.178+0200 done dumping portfolio.settings (1 document) 2024-04-06T09:29:25.179+0200 done dumping portfolio.old_total_sum (1 document) 2024-04-06T09:29:25.179+0200 done dumping portfolio.stocks (34 documents) mongorestore mongorestore -u frank -p '<password>' --host 192.168.3.9 --authenticationDatabase admin -d portfolio mongodump/meineDatenbank/

    Hier wird die Datensicherung mongodump/meineDatenbank/ in die neue Datenbank portfolio transferiert.

    Grund für das Ganze? Mich hatte der Datenbank Name meineDatenbank gestört.

    Benutzerrechte

    Jetzt der Teil wo man schnell was falsch machen kann 🙂 Ich hatte also die neue Datenbank, konnte sie aber nicht lesen. Fehlten halt die Rechte. Ich hatte dann so was hier gemacht.

    db.updateUser("frank", { roles: [ { role: "readWrite", db: "meineDatenbank" }, { role: "readWrite", db: "portfolio" }]})

    Ging auch prima, kam ein ok zurück. Nun das Problem, ich hatte beim Einrichten, den User frank als admin benutzt. Durch den oben abgesetzten Befehl (frank ist ja admin), wurden die neuen Rechte gesetzt und die Rechte als Admin entzogen!! Das war jetzt nicht wirklich das was ich gebrauchen konnte. LOL

    Ich hatte jetzt keine Kontrolle mehr über die DB. Das war aber nicht so wirklich kompliziert, das wieder zu ändern. Die Authentication temporär abstellen. Also /etc/mongod.conf editieren und

    #security: security.authorization: enabled

    eben mal auskommentieren. Den Daemon neustarten und anmelden an der DB.

    mongosh --host 192.168.3.9

    Danach neuen User anlegen

    db.createUser({ user: "<name>", pwd: "<password>", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })

    mongod.conf wieder ändern und neustarten. Danach hat man wieder eine DB mit Authentifizierung und einen neuen Admin. Ich bin diesmal, man lernt ja, anders vorgegangen. Es gibt nun einen Admin für die DB und einen User zum Benutzen der Datenbanken! So wie man es auch auf einem produktiven System auch machen würde. Wenn ich jetzt mal was an den Benutzerrechten des Users ändere, kann mir das mit dem Admin nicht mehr passieren. Hoffe ich 🙂

  • Redis - Datenbanken löschen

    Redis
    1
    0 Stimmen
    1 Beiträge
    134 Aufrufe
    Niemand hat geantwortet
  • Redis - Zweite Instanz

    Redis
    1
    0 Stimmen
    1 Beiträge
    169 Aufrufe
    Niemand hat geantwortet
  • 0 Stimmen
    2 Beiträge
    1k Aufrufe
    FrankMF

    Nachdem ich jetzt ja wieder auf Linux Mint Cinnamon in Version 20.2 unterwegs bin, hatte ich wieder das Problem das der Drucker ohne Probleme druckt aber nicht scannt.

    Ich habe dann mal dieses Tool installiert

    apt install hplip-gui

    0918fea1-0edf-43c1-aa29-9d79efda177c-grafik.png

    Dann auf Scan geklickt, dann meckerte er über ein fehlendes Plugin. Ok, installiert, danach kamen Verbindungsfehler beim Scannen.

    Einmal den USB-Stecker entfernt, danach ging alles. Bitte nicht fragen warum, hplip hasse ich noch mehr als WLAN 😁

    Ok, nicht mehr anfassen....

    79d636b7-2b49-4152-b158-e65cebabf148-grafik.png

    In der Linux Mint Hilfe findet man dazu folgendes -> Klick

  • Redis Replication über Wireguard

    Redis
    5
    0 Stimmen
    5 Beiträge
    375 Aufrufe
    K

    👍
    spart bischen zeit

  • Wireguard

    Verschoben Wireguard
    4
    0 Stimmen
    4 Beiträge
    785 Aufrufe
    FrankMF

    Etwas schnellerer Weg den Tunnel aufzubauen, Voraussetzung

    wireguard modul installiert Keys erzeugt

    Danach dann einfach

    ip link add wg0 type wireguard wg setconf wg0 /etc/wireguard/wg0.conf Datei /etc/wireguard/wg0.conf [Interface] PrivateKey = <Private Key> ListenPort = 60563 [Peer] PublicKey = <Public Key Ziel> Endpoint = <IPv4 Adresse Zielrechner>:58380 AllowedIPs = 10.10.0.1/32

    Die Rechte der Dateien von wireguard müssen eingeschränkt werden.

    sudo chmod 0600 /etc/wireguard/wg0.conf

    Das ganze per rc.local beim Booten laden. Datei /root/wireguard_start.sh

    ############################################################################################### # Autor: Frank Mankel # Startup-Script # Wireguard # Kontakt: frank.mankel@gmail.com # ############################################################################################### ip link add wg0 type wireguard ip address add dev wg0 10.10.0.1/8 wg setconf wg0 /etc/wireguard/wg0.conf ip link set up dev wg0

    Danach Datei ausführbar machen

    chmod +x /root/wireguard_start.sh

    In rc.local

    /root/wireguard_start.sh

    eintragen - Fertig!

  • Redis oder MongoDB?

    Verschoben Redis
    1
    0 Stimmen
    1 Beiträge
    461 Aufrufe
    Niemand hat geantwortet
  • Vorstellung von Joplin

    Linux
    3
    0 Stimmen
    3 Beiträge
    966 Aufrufe
    FrankMF

    Heute das Ganze nochmal ausprobiert. 🙂

    Unter "Werkzeuge/Allgemeine Einstellungen"

    0_1539095579387_2541359f-78f0-4b14-b540-beddb80e7f45-grafik.png

    Danach auf "Synchronisieren" klicken. Nach kurzer Zeit fragt er nach dem fehlenden Passwort. Passwort eingeben und kurze Zeit später waren alle Daten wieder da. Diesmal ging das ruckzuck.

    Joplin 1.0.111 (prod, linux)