Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [cron] mysqldump
sannin
post 11.07.2009, 15:57:51
Post #1





Grupa: Zarejestrowani
Postów: 308
Pomógł: 13
Dołączył: 31.10.2008

Ostrzeżenie: (0%)
-----


Witam,

wywołuje za pomocą crona takie polecenie
Kod
mysqldump -u user -p haslo -h localhost baza | gzip > /home/sannin/backups/db4.sql.gz
Plik co prawda tworzy się, ale jest pusty dlaczego?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
mydoom.h
post 11.07.2009, 16:01:21
Post #2





Grupa: Zarejestrowani
Postów: 125
Pomógł: 13
Dołączył: 7.07.2009
Skąd: Warsaw

Ostrzeżenie: (0%)
-----


Ja bym zrobił tak:

Kod
mysqldump -u user -pHasło baza > plik.sql


Pamiętaj że po "-p" nie ma spacji.

Nastepnie

Kod
tar -zcvf paczka.tar.gz /sciezka/do/plik.sql


Ten post edytował mydoom.h 11.07.2009, 16:01:55


--------------------
Tani hosting - GlowaNET.pl | Hosting na Litespeed | PHP 5.2 | MySQL 5.1
Pakiety już od 22zł rocznie!
Hosting SEO Domeny
Go to the top of the page
+Quote Post
b4x
post 11.07.2009, 16:02:18
Post #3





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

Ostrzeżenie: (0%)
-----


Ja z czegoś takiego korzysta, może przyda Ci się:

Kod
#!/bin/bash
# Shell script to backup MySql database
# To backup Nysql databases file to /backup dir and later pick up by your
# script. You can skip few databases from backup too.
# For more info please see (Installation info):
# http://www.cyberciti.biz/nixcraft/vivek/blogger/2005/01/mysql-backup-script.html
# Last updated: Aug - 2005
# --------------------------------------------------------------------
# This is a free shell script under GNU GPL version 2.0 or above
# Copyright (C) 2004, 2005 nixCraft project
# Feedback/comment/suggestions : http://cyberciti.biz/fb/
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# -------------------------------------------------------------------------

MyUSER=""     # USERNAME
MyPASS=""       # PASSWORD
MyHOST="localhost"          # Hostname

# Linux bin paths, change this if it can't be autodetected via which command
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
CHOWN="$(which chown)"
CHMOD="$(which chmod)"
GZIP="$(which gzip)"

# Backup Dest directory, change this if you have someother location
DEST="/home/costam/backups"

# Main directory where backup will be stored
MBD="$DEST/mysql"

# Get hostname
HOST="$(hostname)"

# Get data in dd-mm-yyyy format
NOW="$(date +"%d-%m-%Y")"

# File to store current backup file
FILE=""
# Store list of databases
DBS=""

# DO NOT BACKUP these databases
IGGY="test"
[ ! -d $MBD ] && mkdir -p $MBD || :

# Only root can access it!
$CHOWN 0.0 -R $DEST
$CHMOD 0600 $DEST

# Get all database list first
DBS="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'show databases')"

for db in $DBS
do
    skipdb=-1
    if [ "$IGGY" != "" ];
    then
        for i in $IGGY
        do
            [ "$db" == "$i" ] && skipdb=1 || :
        done
    fi

    if [ "$skipdb" == "-1" ]; then
        FILE="$MBD/$db.$HOST.$NOW.gz"
        # do all inone job in pipe,
        # connect to mysql using mysqldump for select mysql database
        # and pipe it out to gz file in backup dir :)
        $MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS $db | $GZIP -9 > $FILE
    fi
done


Ten post edytował b4x 11.07.2009, 16:02:54


--------------------
Go to the top of the page
+Quote Post
sannin
post 11.07.2009, 16:16:18
Post #4





Grupa: Zarejestrowani
Postów: 308
Pomógł: 13
Dołączył: 31.10.2008

Ostrzeżenie: (0%)
-----


b4x jak wywołać później ten plik? Bo najpierw muszę go zapisać jako .bash?

mydoom.h tak też nie działa plik nadal jest pusty.
Go to the top of the page
+Quote Post
b4x
post 11.07.2009, 16:18:14
Post #5





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

Ostrzeżenie: (0%)
-----


Ja mam backupa raz dziennie,

Kod
15 5 * * * /home/b4x/backups/mysql.sh



Oczywiście w kodzie, w którym podałem musisz pozmieniać dane,


MyUSER="jakistamuser" # USERNAME
MyPASS="jakiestamhaslo" # PASSWORD
MyHOST="localhost" # Hostname

No i gdzie backupy mają się robić

DEST="/home/costam/backups"

Nie zapomnij o mkdir tongue.gif

Czyli instrukcja przykładowo:

$ pico /var/lib/mysql/backupy.sh
$ mkdir /home/user/backups
$ crontab -e - wrzucasz: 15 5 * * * /var/lib/mysql/backupy.sh (robi codziennie o 5:15)

No i możesz spróbować wygenerować backupa tongue.gif

sh /var/lib/mysql/backupy.sh

Ten post edytował b4x 11.07.2009, 16:26:32


--------------------
Go to the top of the page
+Quote Post
sannin
post 11.07.2009, 23:31:37
Post #6





Grupa: Zarejestrowani
Postów: 308
Pomógł: 13
Dołączył: 31.10.2008

Ostrzeżenie: (0%)
-----


EDIT

Gdyby ktoś kiedyś potrzebował...

Kod
mysqldump -u user -phaslo -h localhost baza > /home/user/backup/plik.sql
DATE=`date -r "/home/user/backup/plik.sql" +%Y_%m_%d`
gzip /home/user/backup/plik.sql
mv /home/user/backup/plik.sql.gz /home/user/backup/baza_${DATE}.gz
rm /home/user/backup/plik.sql

następnie do crona
Kod
sh /home/user/backup/mysql.sh

Oraz uprawnienia dla katalogu i pliku mysql.sh 711

Ten post edytował sannin 12.07.2009, 00:19:25
Go to the top of the page
+Quote Post
mlattari
post 11.07.2009, 23:51:17
Post #7





Grupa: Zarejestrowani
Postów: 79
Pomógł: 3
Dołączył: 23.12.2008
Skąd: Piaseczno

Ostrzeżenie: (0%)
-----


A bez kompresji też jest pusty ;-) questionmark.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 17:39