Linux系统定时备份数据库和网站例子
发布:smiling 来源: PHP粉丝网 添加日期:2014-10-18 11:02:50 浏览: 评论:0
下面本站长给大家整理一些关于在linux系统中对于mysql数据库与网站文件备份的命令,这些方法非常的好,希望对各位会带来帮助.
首先创建一个备份文件,代码如下:
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
- //phpfensi.com
- ftp -v -n 127.0.0.1<<EOF
- 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
Tags: Linux定时备份 Linux备份数据库
相关文章
- ·linux中mysql备份所有数据库的Shell脚本(2015-04-23)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)