Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hey!
Ich würde gerne alle Datenbanken außer Datenbank x auf Server a in eine Datei speichern.
Dafür habe ich bislang das hier geschrieben: (Passwort ist nur auf einem testserver so der aus dem internet nicht erreichbar ist ^^ )

 

    - name: get all db
      command: mysql -u root -p=root -Bse 'show databases'
      register: database_all

    - name: set db
      set_fact: db_all="{{ database_all.stdout_lines }}"
    

    - name: get all dbs that should be backuped
      set_fact: database_different="{{ db_all | difference("database_test") || list }}"

    - name: dump db
      shell: "/usr/bin/mysqldump -Q --single-transaction -u root -h localhost -p=root database_different | /bin/gzip -9 > /root/mysql_backups/file.gz"

    - name: debug db #war nur ein test um zu schauen ob alles richtig ist
      debug:
        msg: "{{ db_all }}"

    


Bei der dritten Task kommt nun folgende Fehlermeldung: "template error while templating string: expected token 'name', got '|'. String: {{ db_all | difference(\"database_test\") || list }}"
Soweit ich das verstehe, scheint db_all keine Liste zu sein?
Und irgendwie befürchte ich auch, dass ich bei difference nicht einfach einen String mit dem Namen von Datenbank x angeben kann, richtig?
Wie löse ich das dann?

Desweiteren ist mir gerade aufgefallen, dass ich die Variable database_different gar nicht so in den shell Befehl packen kann, sondern den Befehl dann erst zwischenspeichern muss damit das geht.... oder? :D

Sind viele Fragen, ich weiß... Tut mir leid ^^
Trotzdem hoffe ich auf ein bisschen Hilfe. Sitze da nun schon Stunden dran und komme nicht vorran.
Danke euch!
 

vor 7 Stunden schrieb _n4p_:

mit mysqlpump und --exclude-databases

https://mysqlserverteam.com/introducing-mysqlpump/

Das wäre prinzipiell perfekt. Allerdings scheint man den noch extra zu installieren müssen und fällt daher leider raus :(

Oh man....
Habe meinen Fehler gefunden, klappt jetzt alles wie gewünscht: Ein Pipe war zu viel :facepalm:
Danke an @_n4p_ für die Hilfe :)
Thread ist nun quasi fertig :)

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.