Linux(Centos)全自动异地备份数据(WEB+Mysql)linux服务器应用

时间:2024年03月03日

/

来源:wulinlin

/

编辑:本站小编

收藏本文

下载本文

下面是小编帮大家整理的Linux(Centos)全自动异地备份数据(WEB+Mysql)linux服务器应用,本文共3篇,希望对大家带来帮助,欢迎大家分享。本文原稿由网友“wulinlin”提供。

篇1:Linux(Centos)全自动异地备份数据(WEB+Mysql)linux服务器应用

文章开始之前,先问下各位站长一个问题:什么东西对于站长是十分重要的?其实对于站长而言,很多东西都是很重要的,但我们现在排除外在因素,把范围缩小到网站系统本身,哪些是非常重要的呢?网站数据就是其中之一了。

网站数据包括程序文件本身、网站运行过程中不断产生的附件数据(图片、文档、视频等)以及数据库文件,三大块总括为网站数据。

以自己为例,在这两年多的站长经历来看,最让我痛苦的就是某一天起床,一直苦心经营的网站打不开了,检查过DNS也正常,最后询问空间运营商发生什么事了,获知的结果系:服务器硬盘损坏,所有数据无法恢复(在这备注下:一般小站长买的机器或者空间都很低配置的,所以别想有什么数据备份服务,要就加钱买),结果就是一阵阵的失落。如果网站刚上线运行不久就发生这样的事或者还不会那么心痛,从头再来也不难。假如是一个运行若干年的网站,突然发生这么一次意外就可以说是重重一击。

刚成为站长的前几个月,我对数据备份这个事情压根没考虑过,直到有一天在群里看到有位群友痛心的经历——网站彻底崩溃,数据全没!!那是经营了3年多的一个老站,就么倒下了,真是闻者伤心听者落泪(有点夸张了)。

我看到了这样活生生的样板,不做数据备份的后果很严重。所以我现在总结出一个经验:如果真要用心做一个网站,就一定要做好数据备份工作,而且最好能异地备份,有些朋友以为在机器本地做了备份就乐了,放心了,那就大错。对于备份数据,又要面临一个实际的问题:每次都自己上服务器把相关的数据打包,然后再用FTP下载回来吗?这样时间长了就会累,所以今天就以Linux(Centos 5.5)环境讲讲如何实现全自动远程(异地)对全站数据进行备份。

要实现自动远程备份功能需要的关软件有:服务器(本地环境)要安装lftp,远程端要开启FTP服务,对登录的目录有读写权限,具备以上2个条件即可。

如果机器上没有安装lftp这个工具,可以通过以下命令完成:

#yum install lftp

假设把相关的脚本文件存放在/apps/script目录下

#vi /apps/script/autobackup.sh //输入以下内容

#!/bin/bash

#author: www.5ishare.com

echo “backup job start”

#设置要备份的网站目录,即是网站的根目录

file=/apps/wwwdata

#设置本地备份目录,用于存放打包后的文件

backpath=/apps/bkdata/

dbuser=数据库用户名

#数据密码,要记得用单引号将把整个密码引起来,如果密码中有单引号就用双引号,嘿嘿

dbpwd='数据库密码'

dbname=数据库名称

domain=远程端的域名或者IP地址

user=FTP用户名

userpwd='FTP用户密码'

bkdate=$(date +%Y%m%d)

sqlfile_sql=${dbname}_${bkdate}.sql

sqlfile_gz=${dbname}_${bkdate}.tar.gz

sqlfp=${backpath}${bkdate}/$sqlfile_sql

if [ -e $backpath${bkdate} ]

then

echo $backpath is exists.

else

mkdir -p $backpath${bkdate}

fi

#执行数据库备份,/apps/mysql/bin/mysqldump修改为你实际环境的路径

/apps/mysql/bin/mysqldump -u $dbuser -p$dbpwd $dbname >${sqlfp}

#对备份之后的数据库文件压缩,或者在数据库备份时通过加入参数直接进行压缩

tar zcf $backpath${bkdate}/$sqlfile_gz -C ${backpath}${bkdate} ${sqlfile_sql}

#删除未压缩SQL的文件

rm -f ${sqlfp}

#生成的文件名格式:web_网站目录名_0419.tar.gz

fn=web_${file##*/}_${bkdate}.tar.gz

tar zcf $backpath${bkdate}/$fn -C ${file%/*} ${file##*/}

#以下操作为FTP自动连接并把本地文件上传到异地服务器上

/usr/bin/lftp ${domain} << END

user ${user} ${userpwd}

lcd ${backpath}

mirror -R ${bkdate}

exit

END

echo “backup job done”

------------分隔线--------------

保存退出之后,为该脚本增加执行权限

#chmod +x /apps/script/autobackup.sh

#crontab –e //添加定时任务,根据具体需求设定备份间隔

#0 4 1,16 * * /apps/script/autobackup.sh

我设定为每月的1日,16日的零辰4点钟执行备份任务,

最好不要在大白天做这些操作,因为会让整个系统明显变慢的。

经过以上配置,站长们就不用再愁数据备份的烦恼了,可以说是一劳永逸。以上仅为个人实际应用写,跟其各自的需求可能不大一样,但本质不变,只要稍作修改即可,如果有其它疑问欢迎大家留言交流学习。

篇2:Linux本地和异地自动备份方案linux服务器应用

创建脚本/root/script/backup.sh

# 该脚本应用于10多台普通的Linux应用服务器,多年来从未出过差错,

# 数据库备份较为特殊,这里不包含数据库备份。

# 因为脚本中含有FTP密码,所以FTP仅给予写权限较为安全,FTP中的老备份的定期删除任务由FTP服务器完成。

# 备份加入到自动任务中,每周六23:00执行,并写入日志,如下:

# 追加下面语句到/etc/crontab中

# 0 23 * * 6 root /root/script/backup.sh >>/root/script/backup.log 2>&1

#有注释版:

#!/bin/bash

#=====================================================

#author zhaoyn

#date /12/31

#=====================================================

#参数设定

basedir=/opt/backup #备份存放的目录

days=15 #备份在本地保留天数

bakfiles=“/root/script. /etc”#需要备份的目录或文件,请不要使用快捷方式或通配符

ftpip=XXX.XXX.XXX.XXX #异地备份的FTP地址

ftpuser='username' #异地备份的FTP用户名

ftppw='password'#异地备份的FTP密码

echo =====================================================

date

cd $basedir

#删除备份目录中15天以前备份文件,不包含子目录

find -maxdepth 1 -name “*.tgz” -mtime +“$days” -exec rm -f {} \\;

for bakfile in $bakfiles

do

file=`basename $bakfile`

#压缩打包需要备份的目录,包括权限,文件命名包含当前时间

tar -czpf “$file”_$(date +%Y%m%d-%H%M).tgz $bakfile

#大文件打包前后,缓解磁盘压力,降低I/O错误概率

sleep 10s ;sync;sync

done

#通过FTP上传当天备份的文件到异地

ftp -v -n -i $ftpip <

user $ftpuser $ftppw

bin

mput *$(date +%Y%m%d)*.tgz

bye

END

#无注释版:

#!/bin/bash

#=====================================================

#author zhaoyn

#date 2010/12/31

#=====================================================

basedir=/opt/backup

days=15

bakfiles=“/root/script. /etc”

ftpip=XXX.XXX.XXX.XXX

ftpuser='username'

ftppw='password'

echo =====================================================

date

cd $basedir

find -maxdepth 1 -name “*.tgz” -mtime +“$days” -exec rm -f {} \\;

for bakfile in $bakfiles

do

file=`basename $bakfile`

tar -czpf “$file”_$(date +%Y%m%d-%H%M).tgz $bakfile

sleep 10s ;sync;sync

done

ftp -v -n -i $ftpip <

user $ftpuser $ftppw

bin

mput *$(date +%Y%m%d)*.tgz

bye

END

Mysql的备份,如果凌晨可以停止几分钟,那么强烈建议对Mysql执行物理备份,脚本如下

#!/bin/bash

#History

#=====================================================

#When Who What

#2010/3/24 Zhaoyn Create

#

#=====================================================

basedir=/opt/backup

updir=$basedir/updir

timenow=$(date +%Y%m%d-%H%M)

# 删除mysql十四天前的数据,注意,这里仅删除了mysql的tgz文件,

rm -f `find $basedir -name “mysql*.tgz” -mtime +14`

# 由于数据库在有连接的情况下,直接对数据文件打包是可能出问题的,所以这里我们在打包前要停用数据库,这样直接对数据文件打包,恢复时只需解压数据文件到新环境相应的目录即可,默认是/var/lib/mysql

# 如果白天也要进行数据库备份,请使用mysqldump命令,进行在线备份。恢复也挺方便的。

/etc/rc.d/init.d/mysqld stop

sleep 5s ;sync;sync

tar -czpf $basedir/mysql.$timenow.tgz /var/lib/mysql

/etc/rc.d/init.d/mysqld start

#=====================================================

附件中的脚本文件是有DOS换行符(CR/LF)的,复制文件中的内容到SSH客户端没有问题,如果直接拷贝文件到Linux系统中,可先运行下面的命令:

mv *.txt *sh

dos2unix *.sh

篇3:linux定时备份mysql数据库linux服务器应用

利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的,

1、创建保存备份文件的路径/mysqldata

#mkdir /mysqldata

2、创建/usr/sbin/bakmysql文件

#vi /usr/sbin/bakmysql

输入

rq=` date +%Y%m%d `

tar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql

或者写成

rq=` date +%Y%m%d `

mysqldump --all-databases -u root -p密码 >/mysqldata/mysql$rq.sql

/var/lib/mysql是你数据库文件的目录,部分用户是/usr/local/mysql/data,每个人可能不同

/mysqldata/表示保存备份文件的目录,这个每个人也可以根据自己的要求来做,

3、修改文件属性,使其可执行

# chmod +x /usr/sbin/bakmysql

4、修改/etc/crontab

#vi /etc/crontab

在下面添加

01 3 * * * root /usr/sbin/bakmysql

表示每天3点钟执行备份

5、重新启动crond

# /etc/rc.d/init.d/crond restart

完成。

这样每天你在/mysqldata可以看到这样的文件

mysql20040619.tar.gz

你直接下载就可以了。

Ghost 数据备份与还原

Excel数据透视表应用

Windows云主机数据盘分区和格式化WEB服务器

一文读懂大数据:Hadoop,大数据技术及相关应用

正交设计与数据分析在药学研究中的应用(Ⅱ)

下载Linux(Centos)全自动异地备份数据(WEB+Mysql)linux服务器应用(精选3篇)
Linux(Centos)全自动异地备份数据(WEB+Mysql)linux服务器应用.doc
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
热门文章
    猜你喜欢
    点击下载本文文档