Zadejte hledaný výraz...

MYSQL záloha na WEDOS DISK

Jiri Bednar
verified
rating uzivatele
(60 hodnocení)
31. 10. 2012 13:14:27
Potřebuji pomoct. Právě řeším zálohování MYSQL databáze na WEDOS DISK, ale nemůžu ani za nic zprovoznit skript, který jsem na internetu našel. Podařilo se mi najít připravený PHP skript, který je určen přesně pro WD a zálohu MYSQL. Bohužel ať dělám co dělám, nedaří se mi to. Údaje k MYSQL a FTP mám určitě zadány správně. Složku pro zálohy na Wedos Disku mám vytvořenu (práva chmod 770). Skript mám uložený na webu a volám ho klasicky jako url.
Opravdu si nevím rady, kde může být chyba. Soubor se mi vůbec nevytvoří a vypíše to "Nejaky problem s uploadnutim suboru....". Když smažu obsah proměnné $folderr na začátku, sice se mi soubor vytvoří v rootu WEDOS DISKu, ale jde o prázdný soubor, který je jen pojmenován tak, jak skript nařizuje.
Za jakoukoliv radu budu velmi vděčný.
31. 10. 2012 13:14:27
https://webtrh.cz/diskuse/mysql-zaloha-na-wedos-disk#reply826166
Michal Hráček
verified
rating uzivatele
(10 hodnocení)
31. 10. 2012 14:33:43
Možná by se hodilo připsat co ti to píše za chybu, script se zdá v pořádku. Možná ale přecejen zkus použít tento script:
/ vsetky potrebne udaje k databaze aj ftp mate na emaily
$DBhost = 'xxx.wedos.net';//vas host server
$DBuser = 'user'; // user
$DBpass = '';//heslo k databaze
$DBName = 'database';// meno databazy- s nej sa zalohuju vsetky tabulky
$ftp_server = ‘xxx.yyyy.wedos.net’;// ftp server sluzby WEDOS Disk
$ftp_user_name = ‘yyyy’; // user
$ftp_user_pass = ”; // a vase heslo
$folderr = ‘backup/’; // temp adresar do ktoreho sa vytvara zaloha mysql databazy, mozu byt aj prazdne ” inac musi existovat
$table = ‘*’;
// Suffix pre backup filename, pre vsetky tabulky nechame *
if ($table == ‘*’) {
$extname = ‘all’;
}else{
$extname = str_replace(“,”, “_”, $table);
$extname = str_replace(” “, “_”, $extname);
}
// nazov zalohy
$filess = ‘dbbackup_’ . date(“d.m.Y_H_i”) . ‘_cron_’ . $extname;
backup_tables($DBhost,$DBuser, $DBpass, $DBName, $table, $extname, $folderr, $filess, $ftp_server, $ftp_user_name, $ftp_user_pass);
// Tu je samotna funkcia ktora sa nam stara o zalohu a ulozenie do .sql
function backup_tables($host,$user,$pass,$name, $tables, $bckextname, $folderr, $filess, $ftp_server, $ftp_user_name, $ftp_user_pass)
{
$link = mysql_connect($host,$user,$pass);
mysql_select_db($name,$link);
$return = “”;
// Get all of the tables
if($tables == ‘*’) {
$tables = array();
$result = mysql_query(‘SHOW TABLES’);
while($row = mysql_fetch_row($result)) {
$tables[] = $row;
}
} else {
if (is_array($tables)) {
$tables = explode(‘,’, $tables);
}
}
// Cyklus pre vsetky tabulky v databaze
foreach($tables as $table) {
$result = mysql_query(‘SELECT * FROM ‘.$table);
$num_fields = mysql_num_fields($result);
// First part of the output – remove the table
$return .= ‘DROP TABLE ‘ . $table . ‘;’;
// Second part of the output – create table
$row2 = mysql_fetch_row(mysql_query(‘SHOW CREATE TABLE ‘.$table));
$return .= “nn” . $row2 . “;nn”;
// Third part of the output – insert values into new table
for ($i = 0; $i < $num_fields; $i++) {
while($row = mysql_fetch_row($result)) {
$return.= ‘INSERT INTO ‘.$table.’ VALUES(‘;
for($j=0; $j $row = addslashes($row);
$row = str_replace(“n”,”\n”,$row);
if (isset($row)) {
$return .= ‘”‘ . $row . ‘”‘;
} else {
$return .= ‘”"‘;
}
if ($j $return.= ‘,’;
}
}
$return.= “);n”;
}
}
$return.=”nnn”;
}
// Save the sql file
$handle = fopen($folderr.$filess.’.sql’,'w+’);
fwrite($handle,$return);
fclose($handle);
// Close MySQL Connection
mysql_close();
}
$file = $folderr.$filess.’.sql’;
$remote_file = $filess.’.sql’;
// pripojenie na ftp
$conn_id = ftp_connect($ftp_server);
// prihlasenie username a heslo
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// upload zalohy na WEDOS Disk
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
//echo “successfully uploaded $filen”;
} else {
//echo “There was a problem while uploading $filen”;
}
// zrusime pripojenie
ftp_close($conn_id);
//vymazeme zalohu z hostingoveho disku …nutne inac nam wedos ten script zakaze
if (!is_dir($file)) {
unlink($file);
}
// Print the message
print(‘The backup has been created successfully!’);
?>
Túto zálohu voláme buď ručne, alebo pokial potrebujeme automatické zálohovanie tak ho nastavíme do CRONa.
Na začiatok možeme pridať argument a volať ho s heslom:
$pass = $argv;
if ($pass != 'heslo') {
die('Password is incorrect!');
}
31. 10. 2012 14:33:43
https://webtrh.cz/diskuse/mysql-zaloha-na-wedos-disk#reply826165
Jan Stejskal
verified
rating uzivatele
(7 hodnocení)
31. 10. 2012 15:05:59
Napsal DStudio;864219
Možná ...
Při volání cronem nesmí skript nic vypisovat, pozor tedy na ten print na konci :)
---------- Příspěvek doplněn 31.10.2012 v 15:13 ----------
Napsal baryman;864165
Potřebuji pomoct.
Chyba je pravděpodobně v zápise adresáře. Nemá tam být na konci lomítko. Druhá věc, je potřeba nastavit cestu do toho adresáře pomocí ftp_chdir.
31. 10. 2012 15:05:59
https://webtrh.cz/diskuse/mysql-zaloha-na-wedos-disk#reply826164
Michal Hráček
verified
rating uzivatele
(10 hodnocení)
31. 10. 2012 16:27:56
Však cron tam nastavení není, tam je pouze možnost ho nastavit.
31. 10. 2012 16:27:56
https://webtrh.cz/diskuse/mysql-zaloha-na-wedos-disk#reply826163
Jiri Bednar
verified
rating uzivatele
(60 hodnocení)
31. 10. 2012 16:50:22
Děkuji všem za pomoct. Pokud mi skript bude fungovat, hodím ho do CRONu.
@Jan Stejkal : smazal jsem lomítko na konci, soubor se sice vytvořil, ale né v té složce, ale rootu WEDOS DISKu a je prázdný. Co si mám najít ohledně "ftp_chdir"? Dohledal jsem si tento článek, ale moc z něj nejsem chytrý.
@Dstudio : už v PSPADu vidím, že ten kód má někde chybu v syntaxi. Navíc hodně z uvozovek tam je spíše čárek, takže bych to celé musel nějak přepsat.
Díky všem za jakýkoliv nápad a pomoc.
31. 10. 2012 16:50:22
https://webtrh.cz/diskuse/mysql-zaloha-na-wedos-disk#reply826162
Despo
verified
rating uzivatele
31. 10. 2012 17:00:54
Cauko, lomitko za backup je samozrejme v poriadku ako to uz vypliva dalej s kodu...a ten backup adresar ma byt na webe...ak to chces nakopirovat do adresara backup na wedos disku zmen na
31. 10. 2012 17:00:54
https://webtrh.cz/diskuse/mysql-zaloha-na-wedos-disk#reply826161
Jan Stejskal
verified
rating uzivatele
(7 hodnocení)
31. 10. 2012 17:01:02
fce ftp_chdir změní (nastaví) adresář na ftp, bez toho se soubor zapíše do rootu ftp
31. 10. 2012 17:01:02
https://webtrh.cz/diskuse/mysql-zaloha-na-wedos-disk#reply826160
Jiri Bednar
verified
rating uzivatele
(60 hodnocení)
31. 10. 2012 17:12:45
@Jan Stejskal : když tímto kódem nahradím identickou část v tom mém, tak se nic nestane ani nevypíše.
@Despo : zkusil jsem, ale vypíše mi to "Nejaky problem s uploadnutim suboru mysql/dbbackup_31.10.2012_17_12_cron_all.sql"
31. 10. 2012 17:12:45
https://webtrh.cz/diskuse/mysql-zaloha-na-wedos-disk#reply826159
Michal Hráček
verified
rating uzivatele
(10 hodnocení)
31. 10. 2012 17:14:12
Práva ?
31. 10. 2012 17:14:12
https://webtrh.cz/diskuse/mysql-zaloha-na-wedos-disk#reply826158
Jiri Bednar
verified
rating uzivatele
(60 hodnocení)
31. 10. 2012 17:20:46
Jsou nastaveny u složky na CHMOD 770, Wedos mi říkal, že to má být v pořádku.
Aktuálně mám toto
31. 10. 2012 17:20:46
https://webtrh.cz/diskuse/mysql-zaloha-na-wedos-disk#reply826157
Jan Stejskal
verified
rating uzivatele
(7 hodnocení)
31. 10. 2012 17:27:27
31. 10. 2012 17:27:27
https://webtrh.cz/diskuse/mysql-zaloha-na-wedos-disk#reply826156
Despo
verified
rating uzivatele
31. 10. 2012 17:28:12
v tom aktualnom nevidim ze by si zmenil to co som pisal.... treba si uvedomit co ten skript robi kopiruje ti momentalne subor z mysql/ do rootu wedos disku.
ked pouzijes bude to kopirovat do adresara mysql na wedos disku ale ten adresar musi existovat a mat prava na zapis.
Mozes kludne pouzit iny folder nez je zdrojovy priklad: ale opat musis mat tento adresar vytvoreny alebo si ho vytvorit pred kopirovanim v kode.
31. 10. 2012 17:28:12
https://webtrh.cz/diskuse/mysql-zaloha-na-wedos-disk#reply826155
Jiri Bednar
verified
rating uzivatele
(60 hodnocení)
31. 10. 2012 17:37:35
@Jan Stejskal : Vyzkoušeno, ale nic se nestane ani nikde neobjeví.
@Despo : zkoušel jsem to nahradit, složka existuje s právy 770 ale nic se nestane ani nevytvoří.
31. 10. 2012 17:37:35
https://webtrh.cz/diskuse/mysql-zaloha-na-wedos-disk#reply826154
Despo
verified
rating uzivatele
31. 10. 2012 17:41:54
tak potom ti nepomozem...ja tu zalohu pouzivam ...zalohujem do rootu...koli tebe som spravil adresar a nastavil zalohu do adresara ...funguje to uplne s prehladom, niekde musis robit chybu.
31. 10. 2012 17:41:54
https://webtrh.cz/diskuse/mysql-zaloha-na-wedos-disk#reply826153
Jiri Bednar
verified
rating uzivatele
(60 hodnocení)
31. 10. 2012 17:46:41
Já jsem strašně rád za jakoukoliv pomoc. Ty přímo využíváš zálohy MYSQL na WEDOS DISK nebo obecně zálohování? Někde musí být chyba, navíc, když se mi to jednu dobu kopírovalo do rootu WD, tak bylo to SQL úplně prázdné.
31. 10. 2012 17:46:41
https://webtrh.cz/diskuse/mysql-zaloha-na-wedos-disk#reply826152
Pro odpověď se přihlašte.
Přihlásit