修改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
另外需要使用一些特殊符号实现灵活的配置:
* 代表所有值 / 代表“每” - 代表范围 , 分割数字
先就这样,以后再编辑