linux定时备份mysql数据库

本文介绍两种在Linux环境下实现MySQL数据库定时备份的方法。方法一使用shell脚本配合crontab实现每日凌晨三点对md数据库进行备份;方法二同样利用crontab,通过创建bakmysql文件并设置执行权限来定时备份所有数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一

 #vi /usr/sbin/mysql_md_bak.sh              
            #!/bin/bash
            source /root/.bash_profile
            mysqldump -uroot -pshangxiaoke md > /home/xtwhrvice_software/mysql_md_bak/mdbak_`date +%Y%m%d_%H%M%S`.sql
#sh /usr/sbin/mysql_md_bak.sh-------------测试能否执行
#crontab -e
            * * * * * sh /usr/sbin/mysql_md_bak.sh 2>&1 &
                                                                                     最后一个&表示在后台执行
#crontab -l   查看crontab 的所有任务


linux 数据备份 ,每天3点,备份md数据位置:/home/xtwh/service_software/mysql_md_bak/

方法二

利用crontab,系统每天定时备份mysql数据库
【内容提要】利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。
利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。
1、创建保存备份文件的路径/mysqldata
#mkdir /mysqldata                  
2、创建/usr/sbin/bakmysql文件                          

输入                            
rq=` date +%Y%m%d `        
tar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql                    |  
( tar zcvf /home/xtwh/service_software/mysql_md_bak/mdbak_`date +%Y%m%d_%H%M%S`.sql.tar.gz  /var/lib/mysql/md)       
或者写成                                                                                               #vi /usr/sbin/mysql_md_bak_2                        
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点钟执行备份                                 
                                                                                          00 4 * * * root /usr/sbin/mysql_md_bak_2
5、重新启动crond
# /etc/rc.d/init.d/crond restart
完成。
这样每天在/mysqldata//home/xtwh/service_software/mysql_md_bak/)可以看到这样的文件
mdbak_`date +%Y%m%d_%H%M%S`.sql
直接下载就可以了。


crontab命令详解
1.命令格式:
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
2.命令功能:
通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常设合周期性的日志分析或数据备份等工作。
3.命令参数:
-u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般有root用户来运行。
file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
-i:在删除用户的crontab文件时给确认提示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值