{"id":128,"date":"2016-11-07T22:13:51","date_gmt":"2016-11-07T21:13:51","guid":{"rendered":"http:\/\/ls3n2uhwe.preview.infomaniak.website\/?p=128"},"modified":"2017-04-28T22:23:19","modified_gmt":"2017-04-28T20:23:19","slug":"mysql-datenbank-backup-anlegen-unter-linux","status":"publish","type":"post","link":"https:\/\/thierrys-blog.ch\/index.php\/2016\/11\/07\/mysql-datenbank-backup-anlegen-unter-linux\/","title":{"rendered":"MySQL Datenbank Backup anlegen unter Linux"},"content":{"rendered":"<p>Hier m\u00f6chte ich euch kurz Zeigen wie Ihr ein Backup eurer MySQL Datenbank anlegen k\u00f6nnt. Dazu nutzen wir ein Bash Skript das naher\u00a0via Cronjob ausgef\u00fchrt werden kann.<\/p>\n<p>Das Bash Skript k\u00f6nnt ihr abspeichern wo Ihr m\u00f6chtet, bei mir heisst\u00a0die Datei\u00a0mysql-backup<strong>.sh <\/strong>die Endung ist wichtig!<\/p>\n<p>Mit folgendem Befehl k\u00f6nnt Ihr eure neue Datei \u00f6ffnen und bearbeiten.<\/p>\n<pre class=\"lang:default decode:true\">nano mysql-backup.sh\r\n<\/pre>\n<p>Danach k\u00f6nnt Ihr diese Skript kopieren und nach folgendes dabei ab\u00e4ndern:<\/p>\n<pre class=\"lang:default decode:true\">#!\/bin\/bash\r\n#\r\n# dieses Skript kann man beliebig oft ausf\u00fchren\r\n#\r\n# Anzahl der Sicherungen die aufgehoben werden sollen\r\nKEEP=30\r\nBACKUPS=`find \/mnt\/Backup-Extern\/MySQL -name \"mysql-backup-*.gz\" | wc -l | sed 's\/\\ \/\/g'`\r\nwhile [ $BACKUPS -ge $KEEP ]\r\ndo\r\nls -tr1 \/mnt\/Backup-Extern\/MySQL\/mysql-backup-*.gz | head -n 1 | xargs rm -f\r\nBACKUPS=`expr $BACKUPS - 1`\r\ndone\r\nDATE=`date +%Y.%m.%d-%H%M`\r\nrm -f \/mnt\/Backup-Extern\/MySQL\/.mysql-backup-${DATE}.gz_INPROGRESS\r\nmysqldump --opt -uuser -ppassword --all-databases | gzip -c -9 &gt; \/mnt\/Backup-Extern\/MySQL\/.mysql-backup-${DATE}.gz_INPROGRESS\r\nmv -f \/mnt\/Backup-Extern\/MySQL\/.mysql-backup-${DATE}.gz_INPROGRESS \/mnt\/Backup-Extern\/MySQL\/mysql-backup-${DATE}.gz\r\nexit 0\r\n\r\n\r\n<\/pre>\n<p>In der Zeile 6 findet Ihr KEEP=30\u00a0 =&gt; hier wird angeben wie viele Sicherungen aufgehoben werden sollten.<\/p>\n<p>In der Zeile 7, 10, 14, 15 + 16 muss der Pfad angegeben werden wo das Backup gespeichert werden soll &#8222;<strong>\/mnt\/Backup-Extern\/MySQL&#8220;<\/strong>, ebenfalls muss die Bezeichnung der Datei angepasst werden <strong>&#8222;mysql-backup&#8220;. <\/strong>Die Datei wird dan in eine Zip-Datei gespeichert.<\/p>\n<p>In der Zeile 13 wird die zus\u00e4tzliche Bezeichnung der Datei angegeben <strong>&#8222;+%Y.%m.%d-%H%M&#8220;<\/strong> Y=Jahr, m=Monat, d=Tag, H=Stunde, M=Minute. Das heisst jede Datei wird mit einem Zeit Stempel versehen und sieht dan z.B. so aus: <strong>&#8222;mysql-backup-2016.11.05-1004.gz&#8220;<\/strong><\/p>\n<p>In der Zeile 15 muss der Benutzer und das Passwort angegeben werden, welche nat\u00fcrlich Zugriffsrechte besitzt. <strong>Achtung<\/strong> Datei muss beachtet werden dass das -u sowie -p mit dem Benutzer Name und Passwort anh\u00e4ngend geschrieben wird.\u00a0Siehe\u00a0Skript! Mit dem Befehl <strong>&#8222;&#8211;all-databases&#8220;<\/strong> wird die Komplette Datenbank gesichert!<\/p>\n<p>&nbsp;<\/p>\n<p>Wenn Ihr dieses Skript nun gespeichert habt k\u00f6nnen wird nun einen Cronjob erstellen, f\u00fcr dies \u00f6ffnen wir zuerst mal den crontab mit einem Editor<\/p>\n<pre class=\"lang:default decode:true \">nano \/etc\/crontab\r\n<\/pre>\n<p>Danach sieht das ganze wie folgt aus und die unterste Zeile f\u00fchrt unser Skript jeden Morgen um 4 Uhr aus.<\/p>\n<pre class=\"lang:default decode:true\"># m h dom mon dow user  command\r\n\r\n#MySQL Backup t\u00e4glich um 4 Uhr\r\n0 4     * * *   root     sh \/home\/user\/mysql-backup.sh\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Eine genaue Anleitung \u00fcber die Zeitliche Einstellungen von Cronjobs findet Ihr unter <strong><a href=\"https:\/\/wiki.ubuntuusers.de\/Cron\/\">wiki.ubuntuusers.de\/Cron\/<\/a><\/strong> , die Erkl\u00e4rung auf dieser Seite finde ich wirklich toll.<\/p>\n<p>&nbsp;<\/p>\n<p>Somit w\u00e4re das Backup von der MySQL Datenbank eingerichtet&#8230;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hier m\u00f6chte ich euch kurz Zeigen wie Ihr ein Backup eurer MySQL Datenbank anlegen k\u00f6nnt. Dazu nutzen wir ein Bash<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[19],"tags":[],"class_list":["post-128","post","type-post","status-publish","format-standard","hentry","category-mysql"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7VJBK-24","_links":{"self":[{"href":"https:\/\/thierrys-blog.ch\/index.php\/wp-json\/wp\/v2\/posts\/128","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thierrys-blog.ch\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thierrys-blog.ch\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thierrys-blog.ch\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thierrys-blog.ch\/index.php\/wp-json\/wp\/v2\/comments?post=128"}],"version-history":[{"count":4,"href":"https:\/\/thierrys-blog.ch\/index.php\/wp-json\/wp\/v2\/posts\/128\/revisions"}],"predecessor-version":[{"id":144,"href":"https:\/\/thierrys-blog.ch\/index.php\/wp-json\/wp\/v2\/posts\/128\/revisions\/144"}],"wp:attachment":[{"href":"https:\/\/thierrys-blog.ch\/index.php\/wp-json\/wp\/v2\/media?parent=128"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thierrys-blog.ch\/index.php\/wp-json\/wp\/v2\/categories?post=128"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thierrys-blog.ch\/index.php\/wp-json\/wp\/v2\/tags?post=128"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}