数据库的自动备份是日常服务运维非常重要的操作之一。使用腾讯云的云mysql数据库有自动备份功能,若是在服务器上单独部署mysql数据库,则需要结合计划任务,使其完成自动备份。
1、首先建立sh文件
用VI或者本地建立好sh文件上传服务器均可。
vi /usr/sbin/mysqlbak.sh
下段代码的意思是 将mysql数据库备份在目录/home/db_bak/下,以格式“date年月日时分秒”做为目录名,将每个数据库生成单独的.sql文件。
cd /home/db_bak/
dateDIR=`date +"%Y%m%d%H%M%S"`
mkdir -p db_$dateDIR
for i in `/home/local/mysql/bin/mysql -uroot -proot -e "show databases" | grep -v "Database" | grep -v "performance_schema" | grep -v "mysql" | grep -v "information_schema"`
do
/home/local/mysql/bin/mysqldump -uroot -proot $i> /home/db_bak/db_$dateDIR/${i}_${dateDIR}.sql
done
2、给sh文件权限,也可以直接给777权限
chmod +x /usr/sbin/mysqlbak.sh
3、设置计划任务
crontab -e
24 10 * * * /usr/sbin/mysqlbak.sh
编码格式导致不执行的处理
当以记事本的方式在电脑上创建.sh文件后,上传至服务器并不能成功运行,会报一些奇怪的错误。主要是因为“文件换行格式”的问题,在windows下是PC格式,而CentOS下是Unix格式,解决方法用诸如Editplus的工具打开,改变文件称行格式即可。
原文地址:https://cloud.tencent.com/developer/article/1997628
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。