解放你的双手,ubuntu定时自动备份MySQL数据库,亲测有效
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
完工。