Προς το περιεχόμενο

Shell Script που τρεχει σε PHP και παιρνει backup SQL DB


The King

Προτεινόμενες αναρτήσεις

Βαζω το ερωτημα εδω γιατι προκειται για εντολες linux. Χρησιμοποιω Redhat 7.

 

Εχω φτιαξει το εξης script το οποιο σας παραθετω στο τελος, που μεσω php σελίδας τρεχει shell commands. To αποτελεσμα ειναι πως οποτε επισκεπτομαι τη σελιδα πχ: http://www.mydomain232.gr/backup.php αυτοματως παιρνει backup μια συγκεκριμενη Database, τη ζιπαρει και μου δινει το λινκ να κατεβασω το backup. Φυσικα για λογους ασφαλειας εχω ρυθμισει το .htaccess αναλογως ωστε να ανοιγει η σελιδα με log in screen.

 

Αυτο που θα ηθελα να με βοηθησει καποιος ειναι να με το $output ωστε να δημιουργει καθε φορα διαφορετικο ονομα του backup αρχειου, οπως πχ με date stamp στο τελος. Τωρα καθε φορα φτιαχνει το ιδιο ονομα (mydb_backup.sql) και το κανει overwrite.

 

Θα ηθελα πχ: να κανει outpute σε filename με date stamp: "mydb_backup-20-10-2009.sql" κατοπιν να το ζιπαρει και μετα το να μου δημιουργει ενα link το οποιο βασει μεταβλητης να "χτυπαει" πανω στο new generated filename. Διαδικασια η οποια γινεται τωρα μονο σε στατικο επιπεδο.

 

 

><?php
header('Content-type: text/html; charset=UTF-8');
$output = shell_exec('mysqldump -u db_myuser -db_mypass db_myname > mydb_backup.sql');
$output = shell_exec('gzip mydb_backup.sql');
?>
<html>
<p align="center"><b><font face="Arial">Tο BACKUP της βάσης 
δεδομένων δημιουργηθηκε. </font></b></p>
<p align="center"><b><font face="Arial">Κάνε κλικ να κατεβάσεις 
το αρχείο </font></b><span lang="el"><b>[b]<a href="mydb_backup.sql.gz">
<font size="4" color="#FF0000">ΕΔΩ</font></a></b>.</span></p>
</html>

 

To 1o μέρος στα php tags τρεχει τις εντολες σε shell για το backup της SQL DB & file generation και κατοπιν zipαρει το file που δημιουργηθηκε.

Στο 2ο μερος απλα παρεχει το Link (το οποιο ειναι παντα ιδιο αφου παντα δημιουργειται το ιδιο αρχειο)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Λογικά είσαι ΟΚ με αυτό. Αυτή είναι μια απλή μορφή

Θα σου βγάλει άμεσα ζιπαρισμένο αρχείο σε ένα βήμα και θα σου προσθέσει την ημερομηνία

 

mysqldump -u db_myuser -db_mypass db_myname | gzip > filename-`date`.gz

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Θα απαντήσω ανάποδα

Αυτο που θα ηθελα να με βοηθησει καποιος ειναι να με το $output ωστε να δημιουργει καθε φορα διαφορετικο ονομα του backup αρχειου, οπως πχ με date stamp στο τελος. Τωρα καθε φορα φτιαχνει το ιδιο ονομα (mydb_backup.sql) και το κανει overwrite.

 

Θα μπορούσες να κάνεις κάτι απλό, του στυλ:

>
$filename = "mysq_db_backup-" . date("d-m-Y") . "sql";

 

Από κει και πέρα, προσωπικά νομίζω ότι δεν είναι ο καταλληλότερος τρόπος να παίρνεις backup, για διάφορους λόγους. Είναι πολύ καλύτερη λύση να το κάνεις με ένα cronjob κάθε βράδυ στις 3 για παράδειγμα.

 

Χρησιμοποιω Redhat 7

Αν το νούμερο δεν είναι λάθος, τότε μην κάνεις τίποτα από τα παραπάνω και απλά βγάλε το μηχάνημα από το internet.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...