Linux系统定时备份数据库和网站例子linux操作系统
“ggzzss”通过精心收集,向本站投稿了5篇Linux系统定时备份数据库和网站例子linux操作系统,以下是小编收集整理后的Linux系统定时备份数据库和网站例子linux操作系统,希望对大家有所帮助。
篇1:Linux系统定时备份数据库和网站例子linux操作系统
首先创建一个备份文件
代码如下复制代码mkdir /datalin/data
vi /datalin/databak 写下下面的内容
(//停止数据库【lnmp环境】 (说明不要写进去)
/etc/init.d/mysql stop
tar zcvf /datalin/data/bakmysql.tar.gz /datalin/mysql
//启动数据库 (说明不要写进去)
/etc/init.d/mysql start)
括号里面的是以前的想法,貌似停止mysql服务不好!
听了朋友(友链中的技术小强)的想法后,这样做:
mysqldump -uroot -p密码 数据库名 >/datalin/mysql/名称.sql -u后面没有空格 -p后面没有空格
这个命令是导出命令 如果以后想导入mysql 则用 mysql -uroot -p密码 库名 < 库备份.sql (谢谢技术小强)
代码如下复制代码tar zcvf /datalin/data/bakwwwroot.tar.gz /datalin/wwwroot
如果需要每次保存备份文件需要创建文件的时候用date函数来为文件夹命名!
修改文件属性 使其可执行
代码如下复制代码chmod +x /datalin/databak
修改/etc/crontab
vi /etc/crontab 写下
00 23 * * * root /datalin/databak
意思是:每天23:00 执行备份
重启crond
代码如下复制代码/etc/rc.d/init.d/crond restart
OK了!
每天在/datalin/data 就可以看到备份的文件了! 你直接下载就可以!
利用mysqldump方法
代码如下复制代码#!/bin/sh
# 定义变量,请根据具体情况修改
# 定义脚本目录
scriptsDir=`pwd`
# 定义用于备份数据库的用户名和密码
user=root
userPWD=123456
# 定义备份数据库名称
dbNames=(jishubu xingzhengbu shichangbu)
# 定义备份目录
dataBackupDir=/home/backup
# 定义备份日志文件
logFile=$dataBackupDir/log/mysqlbackup.log
# DATE=`date -I`
DATE=`date -d “now” +%Y%m%d`
echo `date -d “now” “+%Y-%m-%d %H:%M:%S”` >$eMailFile
for dbName in ${dbNames[*]}
do
# 定义备份文件名
dumpFile=$dataBackupDir/db/$dbName-$DATE.sql.gz
# 使用mysqldump备份数据库,请根据具体情况设置参数
/usr/local/mysql/bin/mysqldump -u$user -p$userPWD $dbName | gzip >$dumpFile
if [[ $? == 0 ]]; then
echo “DataBase Backup Success!” >>$eMailFile
else
echo “DataBase Backup Fail!” >>$emailFile
fi
# 写日志文件
echo “================================” >>$logFile
cat $eMailFile >>$logFile
echo $dumpFile >>$logFile
done
# ftp上传备份
for dbName in ${dbNames[*]}
do
file1=$dbName-$DATE.sql.gz
ftp -v -n 127.0.0.1<
user jishubu 123456
bi
cd mysql
lcd $dataBackupDir/db
mput $file1
bye
EOF
done
本shell运行前请手动建立/home/backup/db /home/backup/log 目录,
shell 运行前记得添加执行权限 chmod 777 databasebackup.sh
修改改好后添加定时任务
crontab -e
01 03 * * * /root/databasebackup.sh >>/home/backup/log/crontablog.txt
篇2:linux系统中下WEB网站备份脚本(网站文件/数据库)linux操作系统
本文章来给各位同学详细介绍在linux中如何实现系统自动定时备份网站文件与网站数据库吧,有需要了解的朋友可进入参考参考,
简单的网站备份脚本
代码如下复制代码#!/bin/bash
#backup database
mypw=CactiEZ
newtime=$(date +%Y%m%d)
if [ -d /var/www/backup/ ];then
mysqldump -u root -p$mypw DB >/var/www/backup/$newtime-Database.sql
else
mkdir /var/www/backup/
mysqldump -u root -p$mypw DB >/var/www/backup/$newtime-Database.sql
fi
tar -zcvf /var/www/backup/$newtime-www.tar.gz /var/www/
find /var/www/backup/ -mtime +4 -exec rm -rf {} ;
还有一个更高级的自动备份网站/数据库/绑米信息/自动上传FTP脚本
本脚本特色:
1.纯zip压缩,1-9可自行调整压缩率
2.整台VPS备份,还原方便,非常适合站群
3.加入压缩密码,可以自己设置
4.加入绑米信息伪静态压缩,防止伪静态弄丢
5.请确保在home目录下有backup目录,如果没有请执行 mkdir /home/backup
6.还原数据库请参考:导入数据库方法
最后更新时间:8月25日
centos安装zip
yum install zip
debian安装zip
apt-get install zip
下载编辑
wget -c www.***.com/soft/beifen.sh
vi beifen.sh
只编辑注解为需要修改的地方
【脚本开始】
代码如下复制代码#!/bin/bash
#下面的参数是你要修改的
MYSQL_USER=root #mysql用户名
MYSQL_PASS=mysql密码 #mysql密码
FTP_USER=FTP用户名 #ftp用户名
FTP_PASS=FTP密码 #ftp密码
FTP_IP=FTP地址 #ftp地址
FTP_backup=FTP目录 #ftp上存放备份文件的目录,这个要自己得ftp上面建的
WEB_DATA=/home/wwwroot/ #要备份的网站数据
WEB_BANGMI=/usr/local/nginx/conf/ #要备份的绑米信息
WEB_MULU=/home/backup #备份文件存放目录
WEB_MIMA=zhujima #备份时候的密码
WEB_YASUOLV=1 #压缩率 1-9 如果VPS没有zip,请安装zip
#上面是你要修改的地方
#删除淘宝客缓存,属于自定义设置,
可自行操作
#rm -rf /home/wwwroot/1.com/Apicache/*
#定义数据库的名字和旧数据库的名字
DataBakName=Data_$(date +“%Y%m%d”).zip #定义数据库名字
WebBakName=Web_$(date +%Y%m%d).zip #定义备份网站名字
BANGMI=BANGMI_$(date +%Y%m%d).zip #定义绑米备份名字
ldData=Data_$(date -d -5day +“%Y%m%d”).zip #定义5天前数据库名字
ldWeb=Web_$(date -d -5day +“%Y%m%d”).zip #定义5天前网站名字
BANGMIshan=BANGMI_$(date -d -5day +“%Y%m%d”).zip #定义5天前绑米名字
#删除本地3天前的数据
rm -rf $WEB_MULU/Data_$(date -d -3day +“%Y%m%d”).zip $WEB_MULU/Web_$(date -d -3day +“%Y%m%d”).zip $WEB_MULU/BANGMI_$(date -d -3day +“%Y%m%d”).zip
#导出全部数据库
cd $WEB_MULU
/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS --all-databases >$(date +“%Y%m%d”).sql
#压缩数据库文件为一个文件
zip -r -$WEB_YASUOLV -P $WEB_MIMA $DataBakName $WEB_MULU/*.sql
rm -rf $WEB_MULU/*.sql
#压缩网站数据
cd $WEB_DATA
zip -r -$WEB_YASUOLV -P $WEB_MIMA $WebBakName ./*
mv $WebBakName $WEB_MULU/$WebBakName
cd $WEB_MULU
#压缩绑米信息
cd $WEB_BANGMI #进入绑米目录
zip -r -$WEB_YASUOLV -P $WEB_MIMA $BANGMI ./*
mv $BANGMI $WEB_MULU/$BANGMI
#上传到FTP空间,删除FTP空间5天前的数据
cd $WEB_MULU #进入备份目录
ftp -v -n $FTP_IP << END
user $FTP_USER $FTP_PASS
type binary
cd $FTP_backup
delete $BANGMIshan
delete $OldData
delete $OldWeb
put $DataBakName
put $WebBakName
put $BANGMI
bye
END
加入权限,写入定时执行
chmod 777 /root/beifen.sh
crontab -e
30 21 * * * /root/beifen.sh
篇3:linux 备份数据库与网站文件详解linux操作系统
最近刚使用linux系统但网站数据还是希望有个备份功能,今天找了一些手动备份数据库与文件与自动备份的脚本分享给各位同学呀,
例1,手动备份数据库与网站文件
代码如下复制代码#!/bin/sh
# 文 件 名: rptsmain.sh
# 版 权: Copyright (shell) -2007
# 版 本 号: V1.0
# 功能描述: 数据备份
# 创 建 人: xxxxx
# 日 期: 2007/10/26
# 修 改 人:xxxxxxx
# 日 期: 2007/10/26
#程序开始
TODAY=`date “+%Y%m%d”`
WORKDATE=$TODAY
BACKDIR='/databak/'
tput init
clear
while :
do
tput clear
echo “”
echo “”
echo “”
echo “”
echo “”
echo “”
echo “”
echo “”
echo “”
echo “
数据备份程序 V1.0
Copyright (shell)
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ┃
┃ 1. 开始备份数据 ┃
┃ ┃
┃ 2. 备份数据写入磁带 ┃
┃ ┃
┃ ---------------------------------- ┃
┃ ┃
┃ 0. 退出系统 ┃
┃ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
请选择[ ] ”
read choice
case $choice in
1):
clear
echo “开始BCP数据库数据...”
DATABASEDIR=$BACKDIR/database
if [ -d $DATABASEDIR ]; then
rm -rf $DATABASEDIR/*
else
mkdir $DATABASEDIR
fi
#备份webdb数据库
mkdir $DATABASEDIR/webdb
total=`cat webdb.table|wc -l`
current=0
for table in `cat webdb.table`
do
current=$current+1
/sybase/OCS-12_5/bin/bcp webdb..$table out
$DATABASEDIR/aadb/$table.bcp -Usa -Ppwd -SServer -Jiso_1 -n -T409600
done
#备份abcdb数据库
mkdir $DATABASEDIR/abcdb
total=`cat abcdb.table|wc -l`
current=0
for table in `cat abcdb.table`
do
current=$current+1
/sybase/OCS-12_5/bin/bcp abcdb..$table out
$DATABASEDIR/bbdb/$table.bcp -Usa -Ppwd -SServer -Jiso_1 -n -T409600
done
echo “开始打包压缩数据库备份数据...”
cd $BACKDIR
tar uvf database-$WORKDATE.tar database/*
echo “正在删除临时文件...”
rm -rf $DATABASEDIR
echo “开始打包压缩数据文件...”
echo “(1)开始打包Tomcat-ABC网站数据文件...”
SOuRCEDIR='/aaaa/uploads'
cd $BACKDIR
#tar czf abc-files-$WORKDATE.tar.gz $SOuRCEDIR/ISO/*
echo “(2)开始打包Websphere经管网数据文件...”
cd $BACKDIR
#tar czf web-files-$WORKDATE.tar.gz /upload/images/807/*
echo “数据备份完成,按任意键返回...”
cd $HOME
read return
;;
2):
;;
0):
break
;;
esac
done
例2,自动定时备份数据库
代码如下复制代码#!/bin/bash
#Setting
#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式
#默认情况下备份方式是mysqldump,还可以是mysqldump,mysqldotcopy,如果注释掉第
#18行,则默认以tag的方式备份
#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz
DBName=mysql
DBUser=root
DBPasswd=123456
BackupPath=/home/wang/www/backup/mysql/mysqlbackup
LogFile=/home/wang/www/backup/mysql/db.log
DBPath=/var/lib/mysql/
#BackupMethod=mysqldump
#BackupMethod=mysqlhotcopy
#BackupMethod=tar
#Setting End
NewFile=“$BackupPath”db$(date +%y%m%d).tgz
DumpFile=“$BackupPath”db$(date +%y%m%d)
ldFile=“$BackupPath”db$(date +%y%m%d --date='5 days ago').tgz
echo “-------------------------------------------” >>$LogFile
echo $(date +“%y-%m-%d %H:%M:%S”) >>$LogFile
echo “--------------------------” >>$LogFile
#Delete Old File
if [ -f $OldFile ]
then
rm -f $OldFile >>$LogFile 2>&1
echo “[$OldFile]Delete Old File Success!” >>$LogFile
else
echo “[$OldFile]No Old Backup File!” >>$LogFile
fi
if [ -f $NewFile ]
then
echo “[$NewFile]The Backup File is exists,Can’t Backup!” >>$LogFile
else
case $BackupMethod in
mysqldump*)
if [ -z $DBPasswd ]
then
mysqldump -u $DBUser --opt $DBName >$DumpFile
else
mysqldump -u $DBUser -p$DBPasswd --opt $DBName >$DumpFile
fi
tar czvf $NewFile $DumpFile >>$LogFile 2>&1
echo “[$NewFile]Backup Success!” >>$LogFile
rm -rf $DumpFile
;;
mysqlhotcopy*)
rm -rf $DumpFile
mkdir $DumpFile
if [ -z $DBPasswd ]
then
mysqlhotcopy -u $DBUser $DBName $DumpFile >>$LogFile 2>&1
else
mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1
fi
tar czvf $NewFile $DumpFile >>$LogFile 2>&1
echo “[$NewFile]Backup Success!” >>$LogFile
rm -rf $DumpFile
;;
*)
/etc/init.d/mysqld stop >/dev/null 2>&1
tar czvf $NewFile $DBPath >>$LogFile 2>&1
/etc/init.d/mysqld start >/dev/null 2>&1
echo “[$NewFile]Backup Success!” >>$LogFile
;;
esac
fi
echo “-------------------------------------------”
echo
#lftp -f lftp.sh 如果有FTP可同时上传ftp中,
再利用crontab命令生成/var/spool/cron/root 文件
crontab –e (就会打开一个编辑窗口,第一行会有内容格式的提示,在此输入命令)
m h dom mon dow command (具体意义表示:分钟 小时 日期 月份 星期 命令,在某月(mon)的某天(dom)或者星期几(dow)的几点(h,24小时制)几分(m)执行某个命令(command))
如: 10 02 * * * /home/backup/autobackupmysql.sh (表示零晨二点十分执行备份脚本)
例3,我们自己的一个Linux VPS 自动备份数据到远程主机FTP
如果系统上没有ftp命令,先执行yum install -y ftp进行安装。
需要先建立/home/backup/目录,该目录不能用作其他用途。
代码如下复制代码#!/bin/bash
#FTP信息
FTP_IP=
FTP_USER=
FTP_PASS=
#备份数据库
/etc/init.d/mysqld stop
MySQLBakName=MySQL_$(date +”%Y%m%d”).tar.gz
tar zcf /home/backup/$MySQLBakName /var/lib/mysql
/etc/init.d/mysqld start
#备份网站
WebBakName=Web_$(date +%Y%m%d).tar
tar cf /home/backup/$WebBakName /home/www
#操作FTP
ldMySQL=MySQL_$(date -d -1day +”%Y%m%d”).tar.gz
ldWeb=Web_$(date -d -1day +”%Y%m%d”).tar
cd /home/backup/
/usr/bin/ftp -v -n $FTP_IP << EOF
user $FTP_USER $FTP_PASS
type binary
put $MySQLBakName
put $WebBakName
delete $OldMySQL
delete $OldWeb
bye
EOF
rm -rf /home/backup/*.tar*
篇4:Linux定时自动备份数据库并上传至FTP的脚本linux操作系统
本文章来给大家介绍一段Linux定时自动备份数据库并上传至FTP的脚本代码,有需要了解的朋友可进入参考,
适用于使用lnmp环境下定时自动备份网站和mysql数据库并上传至FTP:
代码如下复制代码•#!/bin/bash
•MYSQL_USER=root
•MYSQL_PASS=root
•FTP_USER=ftp
•FTP_PASS=123456
•FTP_IP=www.is36.com
•FTP_backup=/public_html/
•WEB_DATA=/home/wwwroot/
•
•DataBakName=Data_$(date +“%Y%m%d”).tar.gz
•WebBakName=Web_$(date +%Y%m%d).tar.gz
•OldData=Data_$(date -d -5day +“%Y%m%d”).tar.gz
•OldWeb=Web_$(date -d -5day +“%Y%m%d”).tar.gz
•rm -rf /home/backup/Data_$(date -d -3day +“%Y%m%d”).tar.gz /home/backup/Web_$(date -d -3day +“%Y%m%d”).tar.gz
•cd /home/backup
•for db in `/usr/local/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do
• (/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - >${db}.sql.gz)
•done
•tar zcfP /home/backup/$DataBakName /home/backup/*.sql.gz
•rm -rf /home/backup/*.sql.gz
•tar zcfP /home/backup/$WebBakName $WEB_DATA
•
•ftp -i -n << !
•open $FTP_IP
•user $FTP_USER $FTP_PASS
•bin
•lcd /home/backup/
•cd $FTP_backup
•delete $OldData
•delete $OldWeb
•put $DataBakName
•put $WebBakName
•bye
篇5:linux网站数据与mysql数据库自动备份代码linux操作系统
linux中使用自动备份功能其实就是我们提交写好要备份的shell脚本之后我们再使用linux中的crontab 命令进行定时执行备份或删除以前的备份数据了,下面看几个例子
定时备份网站数据
代码如下复制代码#!/bin/bash
PATH=/bin:/usr/bin:/sbin:/usr/sbin;
export PATH;
tar zcvf /web/backup/bak.$(date +%Y-%m-%d).tar.gz /web/www/www.111cn.net
find /web/backup -type f -mtime +2 -exec rm {} ;
第二行:导入环境变量
第三行,把指定目录打个压缩包/web/www/www.111cn.net/目录进行大把,存到指定的目录:/web/backup/中,文件是当前的年月日
第四行:删除两天前的备份文件
mysql自动备份(可删除几天前的数据)
代码如下复制代码#!/bin/bashexport PATH=$PATH:/bin:/usr/bin:/usr/local/bin
find /web/backup/mysqlbak/ -mtime +7 -exec rm {} ;#注意:{}和之间有个空格的
mysqldump -uroot -pganggang11560. -B blog >/web/backup/mysqlbak/www.mapenggang.com.$(date +%Y-%m-%d-%k-%m-%S).sql
第一行:就不说了
第二行:导入环境变量,因为在定时任务的时候是没有环境变量的,所以导入一下下,
linux网站数据与mysql数据库自动备份代码linux操作系统
,
传送门
第二行:在/web/backup/mysqlbak/中查找最后修改时间是五天前的文件,并执行 rm命令,{}是将查找的文件名传入!
第三行:mysqldump命令备份数据库,使用root用户连接,导出blog表,将备份存放在/web/backup/mysqlbak/目录下,文件名为:blog加上备份的年月日时分秒
代码如下复制代码chmod 777 ./bak.sh#给脚本执行权限
crontab -e #修改定时任务
30 4 * * * /web/backup/bak.sh #每天的凌晨四点半执行
【Linux系统定时备份数据库和网站例子linux操作系统】相关文章:






文档为doc格式