Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [cron] mysqldump
Forum PHP.pl > Forum > Przedszkole
sannin
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?
mydoom.h
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
b4x
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
sannin
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.
b4x
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
sannin
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
mlattari
A bez kompresji też jest pusty ;-) questionmark.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.