解放你的双手,ubuntu定时自动备份MySQL数据库,亲测有效

解放你的双手,ubuntu定时自动备份MySQL数据库,亲测有效

经验文章nimo972025-03-04 11:28:089A+A-

1、新建一个文件夹存放备份的数据文件,根据个人需要放在合适的位置

mkdir /home/cms_mysqlbackup

2、创建脚本文件,我放在home文件夹了,命名为autobackup.sh

cd /home
vim cmsdatabase_backup.sh

比如你的数据库用户名为cmsuser ,数据库密码为123456,要备份的数据库名为cmsdb,备份的数据库文件放在 /home/MySQL_backup/,为了区分备份日期,对备份的文件按备份时间命名,因此用了下面的第二行代码实现。文件内容如下

#!/bin/bash  
date_str=$(date +%Y%m%d-%T)  
cd /home/ubuntu/data_backup
mysqldump -h localhost -u cmsuser  --password=123456 -R -E -e \cmsdb> /home/MySQL_backup/mysql_$date_str.sql

编辑完成后保存退出

3、对脚本文件赋予运行权限

chmod +x cmsdatabase_backup.sh

4、可以在脚本所在文件夹下进行检验是否成功备份,命令如下

cd home
./cmsdatabase_backup.sh

看看是否成功生成了数据库sql文件


5、设置定时任务(两种方法语句内容不同)
方法1

 sudo vim /etc/crontab

添加 10 15 * * * root bash
/home/cmsdatabase_backup.sh

中间用空格分开,意思是 每天15:30分执行cmsdatabase_backup.sh脚本。
添加 */2 15 * * * root bash
/home/cmsdatabase_backup.sh

中间用空格分开,意思是 每2分钟执行cmsdatabase_backup.sh脚本。

10  15   *   *   *   root bash  /home/cmsdatabase_backup.sh
分  时   天  月  周

方法2

crontab -e



选择3
添加 10 15 * * * bash
/home/cmsdatabase_backup.sh

中间用空格分开,意思是 每天15:30分执行cmsdatabase_backup.sh脚本。
添加 */2 15 * * * bash
/home/cmsdatabase_backup.sh

中间用空格分开,意思是 每2分钟执行cmsdatabase_backup.sh脚本。


crontab 参数释义:

======================

注:crontab中的每一行代表一个定期执行的任务。前5个部分表示何时执行命令,最后一个部分表示执行的命令。每个部分以空格分隔,除了最后一个部分(命令)可以在内部使用空格之外,其他部分都不能使用空格。前5个部分分别代表:分钟,小时,天,月,星期,每个部分的取值范围如下:

分钟 0 - 59        天 1 - 31  
小时 0 - 23        月 1 - 12
星期 0 - 6 0表示星期天
 
* (星号) 表示任意值,比如在小时部分填写 * 代表任意小时(每小时)
,(逗号) 可以允许在一个部分中填写多个值,比如在分钟部分填写 1,3 表示一分钟或三分钟
/(斜线) 一般配合 * 使用,代表每隔多长时间,比如在小时部分填写 */2 代表每隔两小时。所以 */1 和 * 没有区别

注意:使用方法1时,语句里有root,使用方法2时,语句内没root。切记区分,否则命令错误无法执行

6、重启服务

/etc/init.d/cron restart


完工。

点击这里复制本文地址 以上内容由nimo97整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

尼墨宝库 © All Rights Reserved.  蜀ICP备2024111239号-7