修改mysql备份配置文件

sudo vim /etc/mysql/conf.d/mysqldump.cnf

mysqldump.cnf文件添加以下内容:

host=127.0.0.1

user=**** # mysql 用户名

password=*** # mysql


创建备份目录,和脚本中的bak_path 路径一致即可


一种全量备份,包括用户数据及 mysql自带的几个数据库的数据

sudo vim /home/xs320/media/sqlbak/allsql.sh

文件内容

#!/bin/sh
bak_path=/home/xs320/media/sqlbak
# 当前日期
rp=`date +%Y%m%d`
cd $bak_path
mysqldump --all-databases   > allSql_$rp.sql

另一种是 按需备份,备份需要的数据

sudo  vim /home/xs320/media/sqlbak/onesql.sh

文件内容

#!/bin/sh
bak_path=/home/xs320/media/sqlbak
# 当前 日期
rp=`date +%Y%m%d`
cd $bak_path
#backup appSqlData
mysqldump app     > app_$rp.sql
mysqldump qyai     > qyai_$rp.sql
mysqldump sxxgk     > sxxgk_$rp.sql

以上两个脚本配合使用,一个频率高点,一个频率地点,完美。参考其他人的 脚本 还有删除多少天之前的,我觉得要是多少天一天的你都不看的话,备份的意义也不大了。服务器总得定期上去看看日志,看看各种情况吧,所以略过不写了

定期执行就是 编辑 计划人物

sudo  crontab -e


crontab文件添加以下内容:

m      h    dom    mon    dow   command
*/2    *     *      *      *      ls      #每隔2分钟执行一次 ls 命令
*      */8   *      *      *      ls      #每8小时执行一次 ls 命令
30     7     *      *      *      ls      #每天7:30执行一次 ls 命令
30     5    *     *     0      ls    #每周日,5:30执行一次 ls 命令(0和7表示星期天)
30     7     4,10   *      *      ls      #每月的3号和10号的7:30分各执行一次 ls 命令
30     7    3-6     *      *      ls      #每个月的3至6号的7:30分各执行一次 ls 命令
#0-59  0-23  1-31  1-12    0-7   command
#分    时    日    月     星期    可以在shell中执行的脚本或命令

可以把上面的 ls 更换成

bash /home/xs320/media/sqlbak/allsql.sh
#或者
bash /home/...../onesql.sh

另外需要使用一些特殊符号实现灵活的配置:

* 代表所有值        / 代表“每”        - 代表范围        , 分割数字


先就这样,以后再编辑