加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

CentOS/RHEL系统如何达成每天自动备份MySQL数据库

发布时间:2021-12-21 08:15:22 所属栏目:MySql教程 来源:互联网
导读:这篇文章主要介绍CentOS/RHEL系统如何实现每天自动备份MySQL数据库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 1.先在服务器下建文件夹以下3个文件夹:/bak、/bak/bakmysql、/bak/bakmysqlold。 [root@server21 ~]# mkdir -p /b
这篇文章主要介绍CentOS/RHEL系统如何实现每天自动备份MySQL数据库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
 
1.先在服务器下建文件夹以下3个文件夹:/bak、/bak/bakmysql、/bak/bakmysqlold。
[root@server21 ~]# mkdir -p /bak/bakmysql{,old}
在/bak/bakmysql文件夹下建一个shell脚本:
[root@server21 ~]# touch /bak/bakmysql/backup.sh
给文件授权:
[root@server21 ~]# chmod 755 /bak/bakmysql/backup.sh
 
2.编辑shell脚本:
[root@server21 ~]# vim /bak/bakmysql/backup.sh
#!/bin/bash
cd /bak/bakmysql
echo "You are in bakmysql directory "
mv bakmysql* /bak/bakmysqlold
echo "Old databases are moved to bakmysqlold folder "
Now=$(date +"%Y-%m-%d")
File=bakmysql-$Now.sql
mysqldump -uroot -p'password' db_bbs > $File
echo "Your database backup successfully completed "
SevenDays=$(date -d -7day  +"%Y-%m-%d")
if [ -f /bak/bakmysqlold/bakmysql-$SevenDays.sql ]; then
    rm -rf /bak/bakmysqlold/bakmysql-$SevenDays.sql
    echo "You have delete 7days ago backup file "
else
    echo "7 days ago backup file not exist "
fi
 
3.Shell脚本mysqldump -uroot -p'password' db_bbs > $File语句中的红色字体请分别换为自己的mysql数据库用户、密码和database名。脚本先将/bak/bakmysql文件夹下bakmysql为文件名开头的备份文件移至/bak/bakmysqlold,再生成最新的备份文件,最后再判断/bak/bakmysqlold文件夹中七天前的文件是否存在,存在则删除,最后结束。这样就能自动备份最近七天的数据库脚本。
CentOS/RHEL系统如何实现每天自动备份MySQL数据库
 
4.设置每天自动执行shell脚本:
[root@server21 ~]# vim /etc/crontab 在最后加入这样一行(具体含义请自行参考/etc/crontab中的注释)
0 0 * * * root /bak/bakmysql/backup.sh
重启crontab:
[root@server21 ~]# /sbin/service crond restart
如果没有设置crontab为开机自启动可以如下设置其开机自启动:
[root@server21 ~]# chkconfig –level 35 crond on
 
 
以上是“CentOS/RHEL系统如何实现每天自动备份MySQL数据库”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读