Shellscript: Mysqldump...

Serverdienste ohne eigene Kategorie
amiga1200
Posts: 210
Joined: 2007-01-13 19:58

Shellscript: Mysqldump...

Post by amiga1200 »

ich wollte über ein Cronjob ein Backup der Mysql Datenbank machen.
es sollen 14 Tage Archiviert werden.

1) wie bekomme ich ein Shell-Script dazu eine Datei mit das Datum DB_25.6.11 anzulegen

in PHP würde ich es so codieren
$a=datum(xxx) holen im Format 25_6.11
mysqldump datenbank >datenbank_$a
Edit: Das habe ich gelösch:
mysqldump db >db-$(date +%d.%m.%y).sql


2) Wie bekomme ich ein Shell dazu, alle Datei älter als 14 Tage zu löschen


Hat hier zufällig jemand schon mal sowas programmit, und kann gute
Beispiele geben?

3)wenn ich im Shell ein dump mit
mysqldump db >db.sql mache, bekomme ich alle Tabelle.
schreibe ich es in ein PHP-Script
exec("mysqldump db >db.sql ");
bekomme ich 10 Zeilen, nicht mehr. (den Header)
woran könnte es liegen?

System: Suse11

User avatar
Joe User
Project Manager
Project Manager
Posts: 11137
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Shellscript: Mysqldump...

Post by Joe User »

Die primitivste Lösung zu 1 und 2 ist wohl soetwas:

Code: Select all

#!/bin/bash

/usr/bin/mysqldump --opt --allow-keywords --default-character-set=utf8 -c -i -uroot database > /backups/database_$(date +%Y-%m-%d).sql

/usr/bin/find /backups/ -type f -name database\*.sql -mtime 13 | xargs rm

exit 0
Zu 3: Entweder Shell oder PHP, mixen ist uncool ;)
Ernsthaft: Funktionierts mit shell_exec?
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

amiga1200
Posts: 210
Joined: 2007-01-13 19:58

Re: Shellscript: Mysqldump...

Post by amiga1200 »

Joe User wrote:Die primitivste Lösung zu 1 und 2 ist wohl soetwas:

Code: Select all

#!/bin/bash

/usr/bin/mysqldump --opt --allow-keywords --default-character-set=utf8 -c -i -uroot database > /backups/database_$(date +%Y-%m-%d).sql

/usr/bin/find /backups/ -type f -name database\*.sql -mtime 13 | xargs rm

exit 0

das werde ich mir mal genauer ansehen, vielen Dank:



Zu 3: Entweder Shell oder PHP, mixen ist uncool ;)
Ernsthaft: Funktionierts mit shell_exec?
Falsch verstanden:

Ich hatte zuerst ein dump über PHP versucht,
exec("mysqldump db >backup/db.sql ");
warum bring er mir nur 16 Zeilen?
Jemand eine Idee?

dann habe ich es über ein Shellscript zum vergleichen gemacht,
dort wurden alle Tabellen geschrieben

ddm3ve
Moderator
Moderator
Posts: 1182
Joined: 2011-07-04 10:56

Re: Shellscript: Mysqldump...

Post by ddm3ve »

Das Problem ist ggf. ein kurzer Timeout, oder der max. Verfügbare RAM für den php Prozess.
Beide möchte man eigentlich gering halten. So niederig, wie es halt geht.