Automatisches erstellen der Export config json files via Skript

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.900
Punkte für Reaktionen
1.729
Punkte
234
@ctrlaltdelete
Ja, das habe ich auch schon getestet (und funktioniert).

@*kw*
Hmm... da habe ich das gleiche Problem, sprich ein Teil fehlt im File und wird über die Konsole ausgeworfen:
Code:
CONTAINERNAME export
{
   "data" : {},
   "httpd_restart" : false,
   "success" : true
}
 

ctrlaltdelete

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
30. Dez 2012
Beiträge
12.590
Punkte für Reaktionen
5.166
Punkte
504
was kann denn das Script von hier besser oder mehr?
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.900
Punkte für Reaktionen
1.729
Punkte
234
Das Script von hier hatte ich zuerst entdeckt. Ich gehe auch gerne zwei Wege. Wenn ein Weg ausfällt, ich das nicht bemerke, läuft noch der zweite Weg zum Ziel. Es sind ja nur ein paar KB.
 

Hellraiser123

Benutzer
Mitglied seit
31. Jul 2024
Beiträge
453
Punkte für Reaktionen
230
Punkte
99
Würde man sich nicht eine Menge "Ärger" ersparen, wenn man es direkt als compose.yml schreiben würde? Dann könnten diese direkt gesichert werden und man könnte sich das komplette Script sparen. Vor allem mit docker-autocompose könnte man sich einmalig die compose Dateien erstellen und darauf wechseln. Hat auch den Vorteil, dass die auf jedem System funktionieren und nicht nur bei Synology. Wobei man aufpassen muss, dass die API sich nicht ändert.
 

*kw*

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
10. Aug 2013
Beiträge
2.399
Punkte für Reaktionen
1.105
Punkte
174
Um meinen polnischen Freund zu zitieren ("Hä...was...doppla gemoppla?" "Nein, doppelt gemoppelt").

Für yaml dieser Forentipp. :)

Code:
#!/bin/bash

# anzupassen:
BackUpDir="/volume1/docker/backup"
IgnoredContainer=(jitsi_jicofo jitsi_jvb jitsi_prosody jitsi_web synology_docviewer_2 synology_docviewer_1)

#–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
for container in $(docker ps --format "{{ .Names }}"); do
    if grep -q "${container}" <<< "${IgnoredContainer[@]}" ; then
        echo "${container} is on ignore list. Skipping this container."
        continue
    else
        echo "${container} export"

    # YAML:
        # https://www.synology-forum.de/threads/docker-container-automatische-docker-compose-file-erstellen-als-backup.110444/post-897496
        docker run --rm -v /var/run/docker.sock:/var/run/docker.sock red5d/docker-autocompose "${container}" > "${BackUpDir}/${container}_$(date +%Y-%m-%d_%H-%M).yml"
    fi
done
find ${BackUpDir} -mtime +14 -exec rm {} \;
exit
 
  • Like
Reaktionen: ctrlaltdelete

ctrlaltdelete

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
30. Dez 2012
Beiträge
12.590
Punkte für Reaktionen
5.166
Punkte
504
Ich benutzet auch beides, yaml und json Export :cool:
1726750580865.png
 
  • Like
Reaktionen: *kw*

Hellraiser123

Benutzer
Mitglied seit
31. Jul 2024
Beiträge
453
Punkte für Reaktionen
230
Punkte
99
Die Frage ist jetzt wirklich ernst gemeint und es interessiert mich einfach.
Wieso beides? Welchen Vorteil siehst du darin? Gerade beim JSON. Und die nächste Frage in dem Script löscht er ja alle Backups die älter als 14 Tage sind. daraus schließe ich einfach mal, dass es täglich läuft. Da frag ich mich wieso? Wie häufig ändert man irgendwas an der compose/Einstellungen?
Ich würde ja sagen, dass wenn man die Compose erstellt hat bräuchte man doch kein weiteren Export davon. Die Compose.yml liegt ja eh im Filesystem und kann direkt gesichert werden und der Export wäre nicht nötig. Einziger Grund der mir einfällt, man verwendet z.B. Portainer. Der schreibt sein Zeug ja nur in die DB, aber dann würde ich eher ein Backup per API machen und das sichern. Da sind die Stacks und die Portainer Einstellungen mit drin.
Aber wie gesagt, da würden mich die Gründe mal wirklich interessieren.
 
  • Like
Reaktionen: peterhoffmann

ctrlaltdelete

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
30. Dez 2012
Beiträge
12.590
Punkte für Reaktionen
5.166
Punkte
504
Ganz ehrlich, darüber habe ich nicht nachgedacht, ich mache alles im Portainer und wollte ein Backup haben, die Files werden auch noch mit HB weggesichert.
 

Hellraiser123

Benutzer
Mitglied seit
31. Jul 2024
Beiträge
453
Punkte für Reaktionen
230
Punkte
99
Du könntest mit
Code:
curl -k -X "POST" "https://portainer-ip:9443/api/backup" \
          -H 'x-api-key: DEIN-API-KEY' \
          -H 'Content-Type: application/json; charset=utf-8' \
          -d '{ "password": "" }' --output /volume1/..../backup.tar.gz>
dein komplettes Portainer halt sichern. Wenn du es neu machen musst kannst du es bei der Installation einfach hochladen und dann ist alles wie immer.
 
  • Like
Reaktionen: haydibe

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.900
Punkte für Reaktionen
1.729
Punkte
234
Ich muss @Hellraiser123 im Grunde recht geben. Es ist doppelt nicht nötig, zeitlich engmaschig auch nicht. Ich selber werde es monatlich einmal machen lassen, damit auch neue Container oder eventuelle Änderungen enthalten sind. Bei den paar KB spielt es keine Geige.
 

*kw*

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
10. Aug 2013
Beiträge
2.399
Punkte für Reaktionen
1.105
Punkte
174
Ich habe auch nur die json drin, die yaml bei Bedarf. Der Rest war bisher Gewohnheit und da sich meine Containereinstellungen kaum bis nicht verändern, hab ich die jetzt auch rausgenommen.

Ja, @Hellraiser123 hat Recht und manchmal braucht's so Momente zum Durchkehren. ;)
 
  • Like
Reaktionen: peterhoffmann

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.508
Punkte für Reaktionen
392
Punkte
103
Auch hier werden die JSON-Files erzeugt, aber unvollständig. Das was in den JSON-Files fehlt, kommt über die Konsole:
Das ist die Status-Rückmeldung des Exports, also eher Meta-Informationen . Der Export der JSON sollte vollständig sein. Aber will man die wirklich haben? Compose-Dateien sind schon länger ein Industriestandard. Warum auf die Syno-Sonderlocke setzen, wenn man beiden dasselbe erreichen kann (wobei das nicht ganz wahr ist: eine Compose-Datei kann man danach flexibler erweitern)? :D
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat 

 
 
  AdBlocker gefunden!

Du bist nicht hier, um Support für Adblocker zu erhalten. Dein Adblocker funktioniert bereits ;-)

Klar machen Adblocker einen guten Job, aber sie blockieren auch nützliche Funktionen.

Das Forum wird mit hohem technischen, zeitlichen und finanziellen Aufwand kostenfrei zur Verfügung gestellt. Wir zeigen keine offensive Werbung und bemühen uns um eine dezente Integration.

Bitte unterstütze dieses Forum, in dem du deinen Adblocker für diese Seite deaktivierst.

Du kannst uns auch über unseren Kaffeautomat einen Kaffe ausgeben oder ein PUR Abo abschließen und das Forum so werbefrei nutzen.

Vielen Dank für Deine Unterstützung!