Автор Тема: Система за бекъп на MySQL бази данни  (Прочетена 2285 пъти)

anabolix

  • Участници
  • ***
  • Публикации: 7
    • Профил
Здравейте!

В занятието се иска да се направи система за бекъп на бази данни и папките на апачето системата трябва да може да прави секи ден в продължение на 2 седмици бекъп и на 2 седмици да копира папката на апачето в която се намират уеб сайтовете, като изтече срока да за съхранението на базата и папките да бъдат изтрити.
Но бекъпа трябва да се трансферира до друга линукс или уиндоус машина.

Аз оспях да направя това секи ден в Х чеса да прави бекъп-а на  MySQL и да го препраща на майл. Но за съжаление препращането не може да се установи тъйкато архива е твърде голям !


Това е шел скрипта който прави бекъпа и го архивира .
Код:
#!/bin/sh
mysqldump -uUSER_on_your_mysql_server -pPASS_on_Your_mysql_server --opt site > /sqldata/db1.sql


cd /sqldata/
tar -zcvf sqldata.tgz *.sql
cd /scripts/
perl emailsql.pl

него го вкарвъм в cron скрипта който го стартира в
00 04 * * * /scripts/beckup.sh

Тоест в 4:00 сутринта.

А това е и скрипта който праща архива към Имейл,трябва да имате MIME-lite модула за трансфер и работа с PERL
скриптове.

#!/usr/bin/perl -w
use MIME::Lite;

$msg = MIME::Lite->new(
  From    => gg@maksoft.net,
  To      => gg@maksoft.net,
  Subject => sqldata.tgz MySQL backup!,
  Type    => text/plain,
  Data    => "Here are the MySQL database backups.");

$msg->attach(Type=>application/x-tar,
             Path =>"/sqldata/sqldata.tgz",
             Filename =>"sqldata.tgz");

$msg->send;

Надявъм се да бъда полезен ако не намера помощ ! :)  :D ;)

Skype :gesh_rulezzz
Активен

tyuio

  • Гост
Re: Система за бекъп на MySQL бази данни
« Отговор #1 -: Jan 18, 2009, 14:05 »
не схванах защо е проблема в големината пощата до която пращашли не приема големи фаилове?
може да го пуснеш в раздела на bash майстора
Активен

foxb

  • Напреднали
  • *****
  • Публикации: 175
    • Профил
    • WWW
Re: Система за бекъп на MySQL бази данни
« Отговор #2 -: Jan 18, 2009, 16:49 »
Еми като не работи по пощата качи го с (s)ftp.... [_]3

anabolix

  • Участници
  • ***
  • Публикации: 7
    • Профил
Re: Система за бекъп на MySQL бази данни
« Отговор #3 -: Jan 20, 2009, 10:55 »
foxb

FTP пробвах но нестава нещо .. тоест

Код:
#! /bin/bash

# your MySQL server's name

SERVER=neshtosi.com



# directory to backup to

BACKDIR=~/sqldata



# date format that is appended to filename

DATE=`date +'%m-%d-%Y'`



#----------------------MySQL Settings--------------------#



# your MySQL server's location (IP address is best)

HOST=localhost



# MySQL username

USER=root



# MySQL password

PASS=password



# List all of the MySQL databases that you want to backup in here,

# each separated by a space

DBS="site_DB"



# set to 'y' if you want to backup all your databases. this will override

# the database selection above.

DUMPALL=y





#----------------------Mail Settings--------------------#



# set to 'y' if you'd like to be emailed the backup (requires mutt)

MAIL=n



# email addresses to send backups to, separated by a space

EMAILS="1@gmail.com 2@inbox.com 3@goowy.com"



SUBJECT="MySQL backup on $SERVER ($DATE)"



#----------------------FTP Settings--------------------#



# set "FTP=y" if you want to enable FTP backups

FTP=y



# FTP server settings; should be self-explanatory

FTPHOST="IP_HOST"

FTPUSER="User"

FTPPASS="Pass"



# directory to backup to. if it doesn't exist, file will be uploaded to

# first logged-in directory

FTPDIR="backup"



#-------------------Deletion Settings-------------------#



# delete old files?

DELETE=n



# how many days of backups do you want to keep?

DAYS=3



#----------------------End of Settings------------------#



# check of the backup directory exists

# if not, create it

if  [ -e $BACKDIR ]

then

echo Backups directory already exists

else

mkdir $BACKDIR

fi



if  [ $DUMPALL = "y" ]

then

echo "Backing up MySQL databases..."



mysqldump -h $HOST -u$USER -p$PASS --opt $DBS > /sqldata/$DATE-db.sql


cd /sqldata
tar -zcvf $DATE-db.tgz *$DATE-db.sql


fi






# if you have the mail program 'mutt' installed on

# your server, this script will have mutt attach the backup

# and send it to the email addresses in $EMAILS



if  [ $MAIL = "y" ]

then

BODY="Your backup is ready!"

ATTACH=`for file in $BACKDIR/*$DATE-db.tar; do echo -n "-a ${file} ";  done`



echo "$BODY" | mutt -s "$SUBJECT" $ATTACH $EMAILS

       

echo -e "Your backup has been emailed to you! \n"

fi



if  [ $FTP = "y" ]

then

echo "Initiating FTP connection..."



ATTACH=`for file in *$DATE-db.tar; do echo -n "-a ${file} ";  done`


ftp -nv <<EOF

open $FTPHOST

user $FTPUSER $FTPPASS

cd /backup

$ATTACH

quit

EOF

echo -e  "FTP transfer complete! \n"

fi



if  [ $DELETE = "y" ]

then

find $BACKDIR -name "*.sql.gz" -mtime $DAYS -exec rm {} \;



if  [ $DAYS = "1" ]

then

echo "Yesterday's backup has been deleted."

else

echo "The backup from $DAYS days ago has been deleted."

fi

fi



echo Your backup is complete!



Всичко работи добре само на мястото
Код:
ATTACH=`for file in *$DATE-db.tar; do echo -n "-a ${file} ";  done`

явно нещо е сгрешено... неиска да качи файла ! .. иначе прави бекъпа с дата с сичките си екстри .. и тн
Активен

beginner

  • Напреднали
  • *****
  • Публикации: 35
    • Профил
Re: Система за бекъп на MySQL бази данни
« Отговор #4 -: Jan 20, 2009, 11:14 »
Здравей,

аз го правя това с най обикновен баш скрипт който дъмпва базата, архивирва дадени папки и след това със scp което ползва sshkey го записвам на друг сървър. В крона съм задал скрипта да се задава когато съм решил и така. Ако това ти върши работа кажи. Ще ти го пусна.

Поздрави
Активен

anabolix

  • Участници
  • ***
  • Публикации: 7
    • Профил
Re: Система за бекъп на MySQL бази данни
« Отговор #5 -: Jan 20, 2009, 12:38 »
Ами да определенно ми върши :) то по добре да е през SCP .. :)
Активен

beginner

  • Напреднали
  • *****
  • Публикации: 35
    • Профил
Re: Система за бекъп на MySQL бази данни
« Отговор #6 -: Jan 22, 2009, 13:14 »
Здрасти,
извинявай бях те забравил :). Ето го скрипта. Не твърдя че е кой знае какво на мен ми върши работа:

#!/bin/bash
#backup script
$time=`date +%Y%m%d`

$file=`backup-$time.tar.bz2`

/usr/bin/mysqldump -A -u backup --password="passhere" --default-character-set=latin1 > mysql.sql
/bin/tar cfj $file mysql.sql /var/www /etc/rc.d/rc.local /etc/crontab /etc/httpd
/usr/bin/scp -q $file backup\@1.2.3.4:~/backups
/bin/rm -rf $file
/bin/rm -rf mysql.sql
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Система за бекъп на MySQL бази данни
« Отговор #7 -: Jan 22, 2009, 14:16 »
Тоя скрипт ме съмнява, че работи, така като го гледам на пръв поглед.

На втори поглед ми хрумна нещо забавно, пробвай да го стартираш така:

time="cat /etc/passwd "  ./script.sh
Активен

"Knowledge is power" - France is Bacon

smelkomar

  • Напреднали
  • *****
  • Публикации: 429
    • Профил
Re: Система за бекъп на MySQL бази данни
« Отговор #8 -: Jan 22, 2009, 18:44 »
Тоя скрипт ме съмнява, че работи, така като го гледам на пръв поглед.

На втори поглед ми хрумна нещо забавно, пробвай да го стартираш така:

time="cat /etc/passwd "  ./script.sh

 ;D
Активен

Ползвам т'ва, к'вот ме кефи

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
MySql малък проблем.
Хардуерни и софтуерни проблеми
Marto 6 4460 Последна публикация Sep 25, 2002, 12:32
от
mysql въпрос
Настройка на програми
dumi 0 1371 Последна публикация Oct 08, 2003, 06:42
от dumi
Perl + CGI,DBI + Mysql ili PHP + Mysql
Общ форум
jica 3 5169 Последна публикация Sep 07, 2004, 17:02
от jica
Mysql проблем със стартирането(mysql.sock missing)
Настройка на програми
coveka 6 6985 Последна публикация Mar 01, 2008, 22:02
от coveka
Mysql: can't connect to local mysql server
Настройка на програми
wonder 1 5362 Последна публикация Mar 16, 2008, 01:17
от neter