abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 01:11 | Nová verze

    Svobodný citační manažer Zotero (Wikipedie, GitHub) byl vydán v nové major verzi 8. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 16:55 | Nová verze

    Byla vydána verze 1.93.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    včera 14:00 | Komunita

    Svobodný operační systém ReactOS (Wikipedie), jehož cílem je kompletní binární kompatibilita s aplikacemi a ovladači pro Windows, slaví 30. narozeniny.

    Ladislav Hagara | Komentářů: 7
    včera 11:00 | IT novinky

    Společnost Raspberry Pi má nově v nabídce flash disky Raspberry Pi Flash Drive: 128 GB za 30 dolarů a 256 GB za 55 dolarů.

    Ladislav Hagara | Komentářů: 2
    včera 10:22 | Zajímavý software

    Technologie Skip pro multiplatformní mobilní vývoj, která umožňuje vývojářům vytvářet iOS a Android aplikace z jediné Swift a SwiftUI kódové základny, se s vydáním verze 1.7 stala open source.

    Ladislav Hagara | Komentářů: 4
    včera 03:33 | Zajímavý software Ladislav Hagara | Komentářů: 1
    včera 00:11 | Nová verze

    Byla vydána nová major verze 34.0.0 webového prohlížeče Pale Moon (Wikipedie) vycházejícího z Firefoxu. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 1
    21.1. 16:11 | Humor

    Win8DE je desktopové prostředí pro Wayland, inspirované nechvalně proslulým uživatelským rozhraním Metro z Windows 8. Nabízí dlaždicové rozhraní s velkými tlačítky a jednoduchou navigací, optimalizované pro dotyková zařízení. Cílem projektu je přetvořit design operačního systému Windows 8 do funkčního a minimalistického rozhraní vhodného pro každodenní použití na Linuxu.

    NUKE GAZA! 🎆 | Komentářů: 12
    21.1. 14:33 | Nová verze

    Laboratoře CZ.NIC vydaly Datovku 4.28.0 a Mobilní Datovku 2.6.0. Hlavní novinkou je ukládání rozpracovaných datových zpráv do konceptů. Datovka je svobodné multiplatformní aplikace pro přístup k datovým schránkám a k trvalému uchovávání datových zpráv v lokální databázi.

    Ladislav Hagara | Komentářů: 4
    21.1. 14:22 | Zajímavý projekt

    Unix Pipe Game je vzdělávací karetní hra zaměřená na děti a rodiče, která děti učí používat unixové příkazy prostřednictvím interaktivních úkolů. Klíčovým prvkem hry je využití symbolu | pro pipeline neboli 'rouru', který umožňuje propojit výstupy a vstupy jednotlivých unixových příkazů, v tomto případě vytištěných na kartičkách. Předpokládá se, že rodič má alespoň nějaké povědomí o unixových příkazech a jejich provazování pomocí |.

    … více »
    NUKE GAZA! 🎆 | Komentářů: 3
    Které desktopové prostředí na Linuxu používáte?
     (17%)
     (5%)
     (0%)
     (10%)
     (21%)
     (3%)
     (5%)
     (2%)
     (11%)
     (36%)
    Celkem 576 hlasů
     Komentářů: 17, poslední včera 15:24
    Rozcestník

    Dotaz: Záloha souborů + mysql

    poky74 avatar 10.1.2010 20:13 poky74 | skóre: 36 | blog: Zápisník | Vrchlabí
    Záloha souborů + mysql
    Přečteno: 448×

    Ahoj, hledal jsem nějaký elegantní způsob (nejlépe v php) jak cronem zazálohovat nějaká data (konkrétně php soubory jedné aplikace a sql tabulky - mysql).

     

    Pár scriptů jsem našel, ale vždy jsem narazil na komentáře o bezpečnosti tohoto daného řešení, tak se ptám, dá se to vůbec bezpečně (co se týče ztráty dat) udělat?

     

    Děkuji

    Chcete Linuxové samolepky nebo Tuxe na klíče? ->

    Řešení dotazu:


    Odpovědi

    Řešení 1× (poky74 (tazatel))
    10.1.2010 23:00 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Záloha souborů + mysql
    Následující není v PHP ale cronem to lze :)
    PHP data jsou statická data, tzn. zálohovat běžnými prostředky, například:
    tar -czf mojephpdata-www.tar.gz /srv/www/aplikace

    A mysql databaze (například):
    mysqldump --user=dumpuser --password=heslo --add-drop-database --add-drop-table --add-locks --all-databases --comments --create-options --disable-keys --flush-logs --hex-blob --routines --single-transaction --max_allowed_packet=4M > mysql-data.sql
    a pak třeba ještě:
    gzip -9 mysql-data.sql

    Nevidím tam žádné riziko ztráty dat (snad se nepletu :) )
    co není zajištěno je:
    • integrita MEZI databázemi
    • dostupnost databáze při záloze (je uzamknuta po dobu zálohování - záleží na velikosti DB, jak velký čas to vezme)
    • integrita dat zálohy php souborů, pokud by se během zálohy měnily

    Celkový skriptík na uchování 14-ti plných záloh může vypadat takto:
    U příkazu na zálohu mysql (všech DB) je třeba vyplnit jméno a heslo zálohovacího uživatele
    Při chybě to pošle email…
    Pozor: adresář se zálohami je promazáván viz #delete old backups, předpokládá se, že adresář slouží jen k tomuto účelu.
    #!/bin/bash
    ADMIN="jmeno@domena.primarni jmeno@domena.zalozni"
    HOSTNAME=`/bin/hostname`
    FROM="backup@$HOSTNAME"
    NOWDATE=`date +%F`
    HOMEBCKP="/nejaky/treba/nfs/disk"
    COUNTBCKP=14
    
    myexit(){
     logger -p error "backup: Failure. Message: $1"
      echo "BACKUP ERROR !!! on ${HOSTNAME} Message: $1" | /usr/bin/mailx \
        -s "BACKUP ERROR: ${HOSTNAME}" -r ${FROM} ${ADMIN}
     exit $2
    }
    
    #to backup directory
    cd $HOMEBCKP
    if [ $? != 0 ]; then
      myexit "Error: directory $HOMEBCKP not exists" 1
    fi
    
    let "COUNTBCKP = $COUNTBCKP - 1"
    
    #delete old backups, '2*' - only directory begin '2' - for sure :)
    find ./ -depth -mtime +$COUNTBCKP -path "./2*" -delete
    if [ $? != 0 ]; then
      myexit "Error: delete old backups " 109
    fi
    
    mkdir $NOWDATE
    if [ $? != 0 ]; then
      myexit "Error: create backup directory " 2
    fi
    
    cd $HOMEBCKP/$NOWDATE
    if [ $? != 0 ]; then
      myexit "Error: directory $HOMEBCKP/$NOWDATE not exists" 3
    fi
    
    
    #dump Sql
    mysqldump --user=dumpuser --password=heslo  --add-drop-database --add-drop-table --add-locks --all-databases --comments --create-options --disable-keys --flush-logs --hex-blob --routines --single-transaction --max_allowed_packet=4M > $HOSTNAME-mysql-$NOWDATE.sql
    if [ $? != 0 ]; then
      myexit "Error: sql dump error" 10
    fi
    
    gzip -9  $HOSTNAME-mysql-$NOWDATE.sql
    if [ $? != 0 ]; then
      myexit "Error: gzip sql  error" 11
    fi
    
    #www
    cd /srv
    if [ $? != 0 ]; then
      myexit "Error: cd /srv/" 21
    fi
    
    tar -czf $HOMEBCKP/$NOWDATE/$HOSTNAME-www.tar.gz www
    if [ $? != 0 ]; then
      myexit "Error: tar -czf www" 22
    fi
    
    logger -p info "backup: OK"
    
    exit 0
    
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    11.1.2010 08:57 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Záloha souborů + mysql
    Dodatek:
    ten příkaz co jsem uvedl na zálohování DB je vhodný na InnoDB tabulky, pro MyISAM vymněnte přepínač
    --single-transaction
    za
    --lock-all-tables.
    Výše uvedené mysqldump příkazi NEznepřístupňují (nezamykají) tabulky v průběhu zálohy, následující již ano.

    Mělo být uvedeno (i v tom scriptu) toto (vhodné pro MyISAM):
    mysqldump --user=dumpuser --password=heslo --add-drop-database --add-drop-table --add-locks --all-databases --comments --create-options --disable-keys --flush-logs --hex-blob --routines --lock-all-tables --max_allowed_packet=4M > mysql-data.sql

    Sorry, předchozí jsem vykopíroval ze skriptu pro zálohu stroje jen s InnoDB tabulkami.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.