logo

Suletuxe.de
Linux - Nutzer
helfen
Linux - Nutzern

Willkommen, Gast. Bitte Login oder Registrieren.
25. April 2024, 08:23:38
Übersicht Hilfe Suche Login Registrieren

Amateurfunk Sulingen
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe  |  allgemeine Kategorie  |  Installation & Einrichtung  |  Thema: was alles mit ein paar Zeilen Bash geht « zurück vorwärts »
Seiten: [1] nach unten Drucken
   Autor  Thema: was alles mit ein paar Zeilen Bash geht  (Gelesen 1425 mal)
Andreas
Administrator
*****

Offline

Einträge: 1140



Linux von Innen

Profil anzeigen
was alles mit ein paar Zeilen Bash geht
« am: 25. März 2020, 16:50:29 »

Hallo liebe Mitstreiter,

seit heute Vormittag ist der Reposerver repo.nasutek.com mal wieder nicht erreichbar. Das führt bei einem Updateverrsuch mit yay oder pacman dazu, dass GAR KEINE Updates ausgeführt werden.

Klar: das kann man manuell umgehen. In der Datei /etc/pacman.conf sind alle Repositories aufgeführt, die Pacman (und damit auch yay) benutzt. Es gibt nun zwei Ansätze:
1) man verändert die /etc/pacman.conf direkt
2) man erstellt eine Kopie der /etc/pacman.conf (beispielsweise in /tmp), ändert diese und benutzt diese
Weg Nr.2 hat den Vorteil, dass man nichts zurückverändern muss, wenn der Server wieder gehen sollte. Aber man muss auch für 2) regelmässig nachschauen, ob der Sever wieder online ist.

Das alles habe ich in meinem Script swupdate automatisiert - und es läuft "like a charm". Findet das Script einen solchen unerreichbaren Server, fertigt es eine Kopie der pacman.conf in /tmp an, kommentiert den betreffenden Server aus und führt das Update dann unter Nutzung dieser veränderten pacman.conf erneut aus (dann geht es natürlich). Beim nächsten Aufruf von swupdate wird wieder mit der normalen Konfiguration probiert, und sollte der Sever immer noch nicht erreichbar sein geht das Spiel von Neuem los. Dadurch braucht ihr euch bei so einem Problem um nichts kümmern - es wird automatisch gelöst.

Ich kopiere mal den dafür verwendeten Bash-Teil raus:
Code:
    sudo pacman -Sy 2> >(tee -ia /tmp/upd-repodb.log)
    FAILEDREPO=$(cat /tmp/upd-repodb.log | grep aktualisieren | cut -d ' ' -f 3)
    # eine Repository-Datenbak konnte nicht erreicht werden - versuche es ohne diese Datenbank durchzuführen
    if [[ $FAILEDREPO != "" ]]; then
  echo -e "${BLUE}Repository Datenbank von $FAILEDREPO konnte nicht aktualisiert werden - versuche es unter Auslassung von $FAILEDREPO.${NC}"
  # ändere die pacman.conf temporär
  cp /etc/pacman.conf /tmp/pacman.conf
  sudo sed -e "1,\$s/\[$FAILEDREPO\]/#\[$FAILEDREPO\]/g" -i /tmp/pacman.conf
  sudo pacman --config /tmp/pacman.conf -Sy 2> >(tee -ia /tmp/upd-repodb.log)
    rm -f /tmp/pacman.conf
    fi
Vielleicht habt ihr ja Lust und Muße, die Funktion der einzelnen Zeilen selbst zu ergründen? Das Web hat für euch da Antworten bereit - und ich beantworte euch Fragen dazu auch gerne!

LG
Andreas
Gespeichert

Wissen ist das einzige Gut, das mehr wird, wenn man es teilt - wenn es Menschen gibt, die es weitergeben, und es Menschen gibt, die bereit sind, dieses Geschenk auch unter eigenem Einsatz anzunehmen.


Freiheit zu erkämpfen reicht nicht. Man muss sie auch verteidigen.
Seiten: [1] nach oben Drucken 
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe  |  allgemeine Kategorie  |  Installation & Einrichtung  |  Thema: was alles mit ein paar Zeilen Bash geht « zurück vorwärts »
Gehe zu: 


Login mit Username, Passwort und Session Länge

 Es wird die Verwendung "Blink"-basierter Browser und mindestens 1024x768 Pixel Bildschirmauflösung
für die beste Darstellung empfohlen
 
freie Software für freie Menschen!
Powered by MySQL Powered by PHP Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe | Powered by YaBB SE
© 2001-2004, YaBB SE Dev Team. All Rights Reserved.
- modified by Andreas Richter (DF8OE)
Valid XHTML 1.0! Valid CSS!