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

Είναι δωρεάν, είναι σταθερό, είναι γρήγορο.. ας το γνωρίσουμε και λίγο καλύτερα..

Συντονιστές: Super-Moderators, Software & Hardware Moderators

Απάντηση
Άβαταρ μέλους
leopold
Δημοσιεύσεις: 358
Εγγραφή: 19 Νοέμ 2004 13:05
Τοποθεσία: Acquiring IP Address...

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

Δημοσίευση από leopold » 20 Οκτ 2009 04:35

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

Εχω φτιαξει το εξης script το οποιο σας παραθετω στο τελος, που μεσω php σελίδας τρεχει shell commands. To αποτελεσμα ειναι πως οποτε επισκεπτομαι τη σελιδα πχ: 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&#40;'Content-type&#58; text/html; charset=UTF-8'&#41;;
$output = shell_exec&#40;'mysqldump -u db_myuser -db_mypass db_myname > mydb_backup.sql'&#41;;
$output = shell_exec&#40;'gzip mydb_backup.sql'&#41;;
?> 
<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>&#91;b&#93;<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 (το οποιο ειναι παντα ιδιο αφου παντα δημιουργειται το ιδιο αρχειο)

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

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

Δημοσίευση από fafos » 20 Οκτ 2009 06:27

Κώδικας: Επιλογή όλων

<?php
header&#40;'Content-type&#58; text/html; charset=UTF-8'&#41;;
$today = date&#40;'j-n-Y', time&#40;&#41;&#41;;
$today = 'mydb_backup-'.$today.'.sql';
$output = shell_exec&#40;'mysqldump -u db_myuser -db_mypass db_myname > '.$today&#41;;
$output = shell_exec&#40;'gzip '.$today&#41;;
?>
<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>&#91;b&#93;<a href="<?php echo $today;?>.gz">
<font size="4" color="#FF0000">ΕΔΩ</font></a></b>.</span></p>
</html>
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
leopold
Δημοσιεύσεις: 358
Εγγραφή: 19 Νοέμ 2004 13:05
Τοποθεσία: Acquiring IP Address...

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

Δημοσίευση από leopold » 20 Οκτ 2009 11:48

fafos έγραψε:

Κώδικας: Επιλογή όλων

<?php
header&#40;'Content-type&#58; text/html; charset=UTF-8'&#41;;
$today = date&#40;'j-n-Y', time&#40;&#41;&#41;;
$today = 'mydb_backup-'.$today.'.sql';
$output = shell_exec&#40;'mysqldump -u db_myuser -db_mypass db_myname > '.$today&#41;;
$output = shell_exec&#40;'gzip '.$today&#41;;
?>
<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><a href="<?php echo $today;?>.gz">
<font size="4" color="#FF0000">ΕΔΩ</font></a></b>.</span></p>
</html>
Fafo καταπληκτικα, σε ευχαριστω! Πως του προσθετω και time stamp; Επειδη θα υπαρχουν περιπτωσεις που μπορει να παρω παραπανω απο ενα διαφορετικα backup την ημερα.

Άβαταρ μέλους
leopold
Δημοσιεύσεις: 358
Εγγραφή: 19 Νοέμ 2004 13:05
Τοποθεσία: Acquiring IP Address...

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

Δημοσίευση από leopold » 20 Οκτ 2009 11:58

οκ το εφτιαξα, απλα προσεθεσα το H-i στη μεταβλητη today

Κώδικας: Επιλογή όλων

$today = date&#40;'j-n-Y', time&#40;&#41;&#41;;
==>

Κώδικας: Επιλογή όλων

$today = date&#40;'j-n-Y-H-i', time&#40;&#41;&#41;;

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

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

Δημοσίευση από fafos » 20 Οκτ 2009 15:02

to time stamp sthn php den einai ora kai deuterolepta... einai allo prama pou len kai sto xorio mou :lol: gia mena kalytera na to eixes Etos(p.x.2009) - Mhna se m (gia na pairneis to mhden stous monopshfious p.x. 03 gia ton Martio) - Hmera se d (epishs gia na pairneis to 0 mprosta p.x. 08 ) kai thn ora sou.. dhladh na vgainei ths morfhs: 2009-03-08-1345... etsi tha exeis sosth taksinomish ston fakelo sou me ta backups..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
leopold
Δημοσιεύσεις: 358
Εγγραφή: 19 Νοέμ 2004 13:05
Τοποθεσία: Acquiring IP Address...

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

Δημοσίευση από leopold » 20 Οκτ 2009 15:14

Προσπαθω κατοπιν να κανω encrypt το file και να τρεξω με shell_exec την εντολη gpg για το αρχειο που δημιουργειται αλλα δεν μπορω να ενσωματωσω τη διαδικασια που ζηταει δυο φορες passwordphrase και του το δινω μεσω αρχειου για να μπορεσει να το κανει encrypt με automated διαδικασια.

Χρησιμοποιω

Κώδικας: Επιλογή όλων

$output = shell_exec&#40;'gpg -c --passphrase-fd 0 .$today < pass.txt'&#41;;
Η εντολη που το τρεχει σωστα στο shell με automated διαδικασια ειναι:

Κώδικας: Επιλογή όλων

gpg -c --passphrase-fd 0 filename < pass.txt 
οπου στο pass.txt εμπεριεχει τον ο κωδικο που θελω να βαλω.

Υπαρχει φως;

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

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

Δημοσίευση από fafos » 20 Οκτ 2009 16:06

periseuei mia teleia prin to $today
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
leopold
Δημοσιεύσεις: 358
Εγγραφή: 19 Νοέμ 2004 13:05
Τοποθεσία: Acquiring IP Address...

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

Δημοσίευση από leopold » 20 Οκτ 2009 18:53

fafos έγραψε:periseuei mia teleia prin to $today
και χωρις τελεια το ειχα δοκιμασει, δεν εκτελειται κανονικα η εντολη παλι

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

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

Δημοσίευση από dva_dev » 20 Οκτ 2009 20:49

Γενικά για να μην χάνεις και την ταξινόμηση είναι πολύ προτιμότερο να το κάνεις ΥΥΥΥ-ΜΜ-DD παρά DD-MM-YYYY.

Θα βλέπεις

Κώδικας: Επιλογή όλων

2009-01-01
2009-01-02
2009-06-07
2009-07-01
2009-09-01
2009-09-02
κ.λπ.
Αντί

Κώδικας: Επιλογή όλων

01-01-2009
01-02-2009
01-07-2009
01-09-2009
02-01-2009
02-09-2009
07-06-2009
κ.λπ.

Απάντηση

Επιστροφή στο “Linux Guide”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες