Ich versuche, ein Bash-Skript zu schreiben, das einen mysqldump auf der Datenbank meiner Live-Site durchführt, dann den Dump zu einem Git-Repository hinzufügt und festschreibt. Hier ist, was ich bisher habe (gespeichert in einer .sh-Datei, die durch einen crontab-Eintrag genannt wird):
/usr/bin/mysqldump --skip-comments --skip-dump-date -u [user] -p[pass] database | gzip > /var/www/site/backup/database.sql.gz
cd var/www/site/backup && git add *
cd var/www/site/backup && git commit -m 'Database $(date +%a %H:%M %h %d %Y)'
Mein crontab-Eintrag wie folgt aussieht:
0,20,40 8-22 * * * /var/www/site/backup/script.sh
ich, dass dieses Skript sehen kann dump die Datenbank, aber nicht hinzufügen oder die Datei zu git commit. Gibt es etwas, das mir fehlt?
bearbeiten =================================
ich folgende Änderungen vorgenommen und die commit funktioniert:
cd /var/www/site/backup && /usr/bin/git add *
cd /var/www/site/backup && /usr/bin/git commit -m 'Database $(date +%a %H:%M %h %d %Y)'
Allerdings wird das Datum nicht berechnet.
bearbeiten =================================
neuesten Versionen, einschließlich (die meisten) die Empfehlungen
/usr/bin/mysqldump --skip-comments --skip-dump-date -u [user] -p[pass] database > /var/www/site/backup/database.sql
cd var/www/site/backup
/usr/bin/git add *
/usr/bin/git commit -m "Internal Forms Live Database Dump Stored $(date '+%a %H:%M %h %d %Y')"
hast du schon den Status deines git-repositorys mit 'git status' überprüft? – florianb
Ja, so wusste ich, dass die Commits nicht passierten – Hoytman
Komprimieren Sie Ihre Dump vor dem Hinzufügen macht es unmöglich für Git, nur differenzielle Daten zu speichern, git wird sich um die Komprimierung von Daten zu kümmern, wo immer es möglich ist. Entweder lassen Sie es unkomprimiert oder verwenden Sie stattdessen Git-Annex. –