The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Særlige Forums > Web Programmering, Web 2.0 og mashups
.
google unix.com



Web Programmering, Web 2.0 og mashups Diskuter Web Programmering og Web Server Administration, herunder LYGTE, Apache, MySQL, Flash, HTML, SEO, mashups og andre Web API'er og emner.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
MySQL Developer, mødes "Quan" (alias den MySQL Query Analyzer) iBot MySQL DevZone RSS 0 05-15-2009 02:30 PM
MySQL Universitet - Uddannelse på MySQL Development & interne iBot Solaris BigAdmin RSS 0 11-12-2008 09:10 AM
hvordan man kan bryde mysql dump sql fil learnbash Shell Programmering og Scripting 2 05-14-2008 06:39 AM
genskabe mysql dump fil i mange fjerntliggende servere? blesets Shell Programmering og Scripting 2 09-13-2006 02:17 AM
hjælp, hvad er forskellen mellem centrale dump og panik dump? Aileen UNIX for dummyer Spørgsmål & svar 1 06-11-2001 09:08 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søg denne tråd Karakter: Thread Rating: 1 votes, 5.00 average. Display Modes
  #1 (permalink)  
Old 05-29-2009
jzacsh jzacsh is offline
Registreret Bruger
  
 

Join Date: Apr 2009
Stillinger: 29
Question Forvirret måske om MySQL Dump & PHP

Hej. formålet med min indsats lige nu er at få et større manuskript af mine (som admin fortalte mig, at han havde lagt i cron for mig) til passende back-up af min MySQL-database. At afprøve den sql back-up-del (før at få det hele scriptet i cron, og har det ikke arbejde) Jeg ønskede at afprøve den. Så her er hvad jeg gjorde:

PHP-fil for at gøre mit forsøg (på live-serveren)

Code:
<?php

$test = shell_exec('echo $SHELL');
echo "<pre>$test</pre>";

$output = shell_exec('sh ./sqlBack.sh');
echo "<pre>$output</pre>";
?>

Script blive kaldt af PHP

Code:
#!/usr/local/bin/bash

# MYSQL BACKUP:
sql_bDir="./sql_backups/" #LOCATION FOR SQL BACKUPS TO LAND
sql_bName=SqlBackup_$(date "+%A")

echo "The Shopping Cart's database backup will be in $sql_bDir and will be named $sql_bName" #NOTICE OF DATABASE BACKUP
mysqldump -uNAME -pPASS --opt DBASENAME > $sql_bDir$sql_bName.tgz

bare for at teste, begge disse filer blev fastsat til 777 på serveren. Output fra PHP-fil ser ud, som det burde, men så finder jeg det . / sql_backups / mappe tom. Jeg prøvede det brugernavn, adgangskode og database af den sidste linje af det pågældende script i både store bogstaver og små bogstaver (læst et sted at hovedstæder virker bedre .. anyways). Jeg er ikke oplevet med php / mysql .. Jeg fandt syntaks for at mysqldump linje i en artikel.

På forhånd tak for alle jeres hjælp!
  #2 (permalink)  
Old 06-02-2009
otheus's Avatar
otheus otheus is offline Forum Staff  
Redaktør ala Mode
  
 

Join Date: Feb 2007
Sted: Innsbruck, Østrig
Indlæg: 1.893
Hvis han vil sætte det i et cronjob, kan du ikke med rette gå ud fra, hvad de PWD (nuværende arbejdsmetoder bibliotek), vil være, således at linjen:

Code:
sql_bDir="./sql_backups/" #LOCATION FOR SQL BACKUPS TO LAND

Ikke giver mening. Du har brug for en fuld sti, eller måske noget med præfikset $ HOME.

For det andet bør mysqldump linje:

Code:
mysqldump -u NAME -p PASS  DBASENAME

Endelig bør du forstå, at produktionen ikke er automatisk komprimeret. Gør det særskilt via et rør

Code:
mysqldump -u NAME -p PASS  | gzip -c > $sql_bName.gz

Endelig kan du få nogle resultater af bufferen output via et program kaldet "dd". Dette giver mysqldump at gøre sit arbejde i længere tid, inden de skifter over til at gøre det kompression.

Code:
mysqldump -u NAME -p PASS DBASENAME  | dd bs=1M | gzip -c > $sql_bName.gz

For mit dump, at jeg sikker på lossepladsen er gjort i en "single-transaktion" for at sikre, at lossepladsen er en erstattes tilstand. (dvs. transaktioner ikke finde sted i løbet af dump). Jeg vil også sende uddata til bzip2 for højere kompression.

Code:
mysqldump -u NAME -p PASS --single-transaction DBASENAME | dd bs=1M | bzip2 -c >dumpfile

  #3 (permalink)  
Old 06-02-2009
jzacsh jzacsh is offline
Registreret Bruger
  
 

Join Date: Apr 2009
Stillinger: 29
Tak for svaret!

Citat:
Oprindeligt Indsendt af otheus View Post
Hvis han vil sætte det i et cronjob, kan du ikke med rette gå ud fra, hvad de PWD (nuværende arbejdsmetoder bibliotek), vil være, således at linjen:

Code:
sql_bDir="./sql_backups/" #LOCATION FOR SQL BACKUPS TO LAND

Ikke giver mening. Du har brug for en fuld sti, eller måske noget med præfikset $ HOME.
god pointe, jeg indser, at selv om jeg kun havde. / på plads som noget midlertidigt, som jeg gør manuelle test (lettere at skrive ud til test)

Citat:
Oprindeligt Indsendt af otheus View Post
For det andet bør mysqldump linje:

Code:
mysqldump -u NAME -p PASS  DBASENAME

Endelig bør du forstå, at produktionen ikke er automatisk komprimeret. Gør det særskilt via et rør

Code:
mysqldump -u NAME -p PASS  | gzip -c > $sql_bName.gz
Tak, havde jeg undladt at læse, hvad "opt" valgmulighed gør det (der foregik på en online-artikel forslag om at bruge det, der sagde "opt ikke komprimering)
Dette er hvad jeg fandt:
Citat:
o - Ekstra

Denne mulighed er en forkortelse, og det er det samme som præciserer
- add-drop-table - add-locks - skabe-optioner - disable-nøgler
- udvidet Sæt - lock-borde - hurtig - set-charset. Det bør
give dig et hurtigt dump drift og producere en dump fil, som kan
genindlæses i en MySQL-server hurtigt.

Den - Ekstra option er aktiveret ved standard. Anvendelse - skip-opt til deaktivere
det. Se debatten i begyndelsen af dette afsnit
oplysninger om selektivt at aktivere eller deaktivere nogle af de
optioner påvirket af - Ekstra.
Hvis jeg ikke ved, hvad de fleste af dem ^ do (som jeg ikke kender til MySQL) vil du foreslå jeg bare holde fast i de simplere kode, du har lagt ud? eller vil de ovenstående muligheder for "opt" ikke ondt?

Citat:
Oprindeligt Indsendt af otheus View Post
Endelig kan du få nogle resultater af bufferen output via et program kaldet "dd". Dette giver mysqldump at gøre sit arbejde i længere tid, inden de skifter over til at gøre det kompression.

Code:
mysqldump -u NAME -p PASS DBASENAME  | dd bs=1M | gzip -c > $sql_bName.gz
Dette er virkelig cool, tak!
Citat:
Oprindeligt Indsendt af otheus View Post
For mit dump, at jeg sikker på lossepladsen er gjort i en "single-transaktion" for at sikre, at lossepladsen er en erstattes tilstand. (dvs. transaktioner ikke finde sted i løbet af dump). Jeg vil også sende uddata til bzip2 for højere kompression.

Code:
mysqldump -u NAME -p PASS --single-transaction DBASENAME | dd bs=1M | bzip2 -c >dumpfile
Der er mere end 8.100 artikler i vores indkøbskurv. efter at have læst den mand, jeg ser det er foreslået at bruge "hurtig" sammen med "single-transaktion" til store borde. Hvad er en "stor" tabel? Er 8.000 + punkter betragtes som et stort bord? Hvis jeg bruger "hurtig", vil det virke mod hensigten med at køre bs \u003d 1M option med dd?

Tak for al din hjælp!
  #4 (permalink)  
Old 06-02-2009
otheus's Avatar
otheus otheus is offline Forum Staff  
Redaktør ala Mode
  
 

Join Date: Feb 2007
Sted: Innsbruck, Østrig
Indlæg: 1.893
Du behøver ikke at bruge - Ekstra da det er aktiveret som standard. 8.000 poster er ikke en masse. Den "hurtig" løsning vil ikke besejre det formål at bruge bs \u003d 1M.
  #5 (permalink)  
Old 06-02-2009
jzacsh jzacsh is offline
Registreret Bruger
  
 

Join Date: Apr 2009
Stillinger: 29
Question

Citat:
Oprindeligt Indsendt af otheus View Post
Du behøver ikke at bruge - Ekstra da det er aktiveret som standard. 8.000 poster er ikke en masse. Den "hurtig" løsning vil ikke besejre det formål at bruge bs \u003d 1M.
Mange tak for din hjælp. Jeg forsøger at teste dette på min personlige levende hjemmeside's wordpress database først. så jeg uploadet en test.php fil til at køre shell script, som så:

test.php

Code:
<?php

$output=shell_exec('sh /home/jzacsh/public_html/private/scripts/dbackup.sh');

echo "<pre>$output</pre>";

?>

Det shell script sin indstillet til at køre, er:


Code:
#!/bin/sh

sql_bDir=./sql_pickup/

#START SQL BACKUP + TGZ 
echo " " #VISUAL PADDING
echo "# BEGINNING DATABASE BACKUP PORTION:" #VISUAL
    #MYSQL LANDING DIR. CHECK
    echo "Checking if sql backup landing directory exists: $sql_bDir"
    if test -d "$sql_bDir"
    then
        echo "Directory to receive database backup exists"
    else
        echo "Directory to receive database backup does not exist, creating it"
        mkdir $sql_bDir
    fi #ENDIF SQL DIR. CHECK

echo " " #VISUAL PADDING

# MYSQL BACKUP
sql_bName=SQLBackUp_$(date +%A).gz
sql_Path=$sql_bDir$sql_bName

echo "The Shopping Cart's database backup will be:" $sql_Path #NOTICE OF DATABASE BACKUP
echo "Note: If the main backup is backing up the root directory, you do not need to separately download the database backup."

mysqldump -u name -p wppass --single-transaction db123 | dd bs=1M | gzip -c > $sql_Path

så jeg besøger ovenstående ^ test.php via browseren og få dette output:

Code:
 
# BEGINNING DATABASE BACKUP PORTION:
Checking if sql backup landing directory exists: ./sql_pickup/
Directory to receive database backup exists
 
The Shopping Cart's database backup will be: ./sql_pickup/SQLBackUp_Tuesday.gz
Note: If the main backup is backing up the root directory, you do not need to separately download the database backup.

Når jeg henter filen sin eneste 4KB, og efter unarchiving filen, skal jeg finde en Zero KB-fil, der bruger "kat" via terminalen viser, at filen er virkelig blank.

Any ideas, hvad jeg kunne gøre forkert?
  #6 (permalink)  
Old 06-02-2009
otheus's Avatar
otheus otheus is offline Forum Staff  
Redaktør ala Mode
  
 

Join Date: Feb 2007
Sted: Innsbruck, Østrig
Indlæg: 1.893
1. ændring sql_bDir til $ PWD / sql_pickup / så vi kan se, hvor på der faktisk udgange.
2. til test, slukke kompression og springe dd kommando ... output direkte til filen.
  #7 (permalink)  
Old 06-02-2009
jzacsh jzacsh is offline
Registreret Bruger
  
 

Join Date: Apr 2009
Stillinger: 29
Question

Citat:
Oprindeligt Indsendt af otheus View Post
1. ændring sql_bDir til $ PWD / sql_pickup / så vi kan se, hvor på der faktisk udgange.
2. til test, slukke kompression og springe dd kommando ... output direkte til filen.
okay, gjort. syntes ikke at gøre en forskel (filen stadig kommer ud 0 B, bare ukomprimeret)

test.php output:

Code:
 
# BEGINNING DATABASE BACKUP PORTION:
Checking if sql backup landing directory exists: ./sql_pickup/
Directory to receive database backup exists
 
The Shopping Cart's database backup will be: ./sql_pickup/SQLBackUp_Tuesday
Note: If the main backup is backing up the root directory, you do not need to separately download the database backup.

kilde til dbackup.sh

Code:
#!/bin/sh

sql_bName=SQLBackUp_$(date +%A)
mysqldump -u jzacsh_jzacsh -p wordpres --single-transaction jzacsh_jzwp  > $PWD/sql_pickup/$sql_bName

faktisk ... bare i udstationering, at ^ jeg indså, at jeg har ikke kontrolleret:
echo $ SHELL

... det returnerede
/ usr / local / cpanel / bin / noshell

I'm guessing at betyder, at jeg ikke kan køre tingene ordentligt? (Jeg er ikke sikker på, jeg har naturligvis en shell til output en fil med og alt ... jeg bare ikke var vellykket i udsende en GOD fil)
Closed Thread

Bogmærker

Tags
backup, mysql, php test

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 03:37 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0