הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [PHP] יצירת קובץ גיבוי GZ למסד נתונים שלם (https://hosts.co.il/forums/showthread.php?t=66418)

OrPol 16-08-08 10:49

[PHP] יצירת קובץ גיבוי GZ למסד נתונים שלם
 
שלום חברים,
כפי שציינתי בהודעותיי הקודמות בפורום, אני עובד על פרוייקט גדול עכשיו.
אני מנסה ליצור קובץ גיבוי ע"י סקריפט PHP ואני לא מצליח.
אני משתמש בקוד הזה:
קוד:

include 'config.php';
include 'dblib.php';

$backupFile = $CNF['sql_database'] . date("Y-m-d-H-i-s") . '.gz';
$command = "mysqldump --opt -h $CNF['sql_host'] -u $CNF['sql_user'] -p $CNF['sql_pass'] $CNF['sql_database'] | gzip > $backupFile";
system($command);

ומשום מה הוא לא פועל.
הוא מחזיר לי את השם של הקובץ אבל הקובץ לא באמת נוצר.

ולכן אני שואל:
האם צריך לתת הרשאות מיוחדות מלבד 777? (בדקתי ולא שינה כלום)
האם יש דרך אחרת? מלבד לכתוב כל טבלה ל outfile?

ועוד שאלה, כיצד אני יכול לעשות כמו במערכות מוכנות כדוגמאת IPB שכאשר אני אלחץ על הגיבוי, הוא יתחיל לגבות ומיד בסיום הפעולה תהיה לי האפשרות להוריד את הקובץ?

תודה רבה לכל העוזרים,
ושבת שלום.

snirk 16-08-08 10:56

נסה להשתמש בsystem כך:
ציטוט:

"system("$command);

OrPol 16-08-08 11:03

קוד:

<?php
include 'config.php';
include 'dblib.php';

$backupFile = $CNF['sql_database'] . date("Y-m-d-H-i-s") . '.gz';
$command = "mysqldump --opt -h ".$CNF['sql_host']." -u ".$CNF['sql_user']." -p ".$CNF['sql_pass'].$CNF['sql_database']." | gzip > $backupFile";
system("$command");

echo $backupFile ;


?>

הקוד הזה יוצר לי את הקובץ ומחזיר לי את השם, הבעייה שהקובץ ריק.
מה ניתן לעשות?

snirk 16-08-08 11:07

משהו בתוך הvar command שגויי...
אני כבר ינסה לתת לך תשובה.

אתה לא יכול לדעתי ליצור ישר קובץ gz ... אתה תיהיה צריך קודם כול ליצור את הקובץ sql ואז לתת לו את הפקודת tar ...
נסה להעזר במדריך הזה : http://mathiasbynens.be/archive/2005/07/mysql-backup

OrPol 16-08-08 11:34

אז אני בעצם צריך לעשות ככה:
קוד:

$creatBackup = "mysqldump -u ".$user." --password=".$password." ".$dbName." > ".$sqlFile;
$createZip = "tar cvzf $attachment $sqlFile";

?

intercooler3819 16-08-08 18:30

פצל את העניין לשתי חתיכות
שליפת כל המידע ויצירת קובץ שאילתות
אחרכך TAR לפלט

זה בדיוק כמו פתיחת FIREFOX ולקחית SCREENSHOT ;)

Tomer 16-08-08 21:38

ה Command שלך צריך להיות,

קוד:

mysqldump -h HOST -u USER -pPASSWORD >> FILE.sql && gzip FILE.sql
כל מה שרשום באותיות גדולות - צריך להיות שם משתנה שלך. השם קובץ לא צריך להכיל gz בהתחלה אלא sql. כשאתה עושה gzip FILE.sql זה ייצור FILE.sql.gz כמו שרצית.

מה שעשית בהתחלה פשוט דורס את הקובץ לפי דעתי, ולכן הוא ריק.

Daniel 16-08-08 23:20

בכל מקרה - אם לא תצליח, היה לי פעם איזה סקריפט לגיבוי ב-PHP אם תרצה.


כל הזמנים הם GMT +2. הזמן כעת הוא 17:27.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ