linux 定时备份mysql 数据库
1.创建备份目录
mkdir 777 /data
cd /data
mkdir 777 /dbback
cd /dbback
mkdir 777 /mysql
777赋予读写权限,在根目录建立/data/dbback/mysql 目录
2.写shell脚本
touch backup.sh
vim backup.sh
使用vim命令来编辑脚本,而不是用windows编辑器,用windows写脚本会识别不了换行符,在sql文件后缀名加一个?,详见https://blog.csdn.net/weng_xianhu/article/details/79419675
3.脚本内容
打开sh文件,按i键编辑脚本,esc键退出,:wq命令保存并关闭
echo mysql_backup_start #echo 打印
mysqldump -u用户名 -p密码 --default-character-set=utf8mb4 --databases 数据库名 > /data/dbback/mysql/数据库名$(date +"%Y%m%d%H%M%S").sql #获取系统时间戳拼在文件后
4.编写定时任务
crontab #查看是否安装crond一般centos都带了 如果没有安装:
yum -y install vixie-cron #详见https://www.cnblogs.com/dxy1451713982/p/8081569.html
service crond status #查看crond状态
service crond start #启动
service crond restart #重启
service crond stop #停止
crontab -e #以vim命令的形式编辑定时任务脚本
5.定时任务结构
minute hour day month week command
其中:
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
例如:10 00 * * * /data/dbback/backup.sh 表示每天0点10分执行sh脚本
6启动定时任务
编辑完crontab -e之后,重启一下,记得要给sh文件赋予权限
chmod 777 /data/dbback/backup.sh