本文主要是使用 Linux
的定时任务和 Mysql
的 mysqldump
工具对数据库进行本地的简单备份。
1. 创建shell脚本
-
创建一个脚本:
vim mysql-backup.sh
-
脚本内容如下:
#!/bin/sh db_user="root" db_passwd="123" db_name="datacollection" name="$(date +"%Y%m%d%H%M%S")" /usr/local/mysql-5.7.18/bin/mysqldump -u$db_user -p$db_passwd $db_name >>/tmp/mysql-backup/$name.sql
- 说明:
/usr/local/mysql-5.7.18/bin/mysqldump
:mysql
数据库安装目录下的mysqldump
备份工具路径db_name
:需要备份的数据库名字/tmp/mysql-backup/$name.sql
:备份文件输出位置,可以根据情况自行设定,目录要事先创建好。
2. 给shell脚本添加执行权限
chmod 755 mysql-backup.sh
3. 给脚本添加定时任务
-
编辑定时任务
sudo crontab -e
-
文件末尾添加 cron 表达式
下面这个定时任务的意思是:每小时 0 分 0 秒 的时候会自动执行刚写的那个脚本,进行MySQL数据库的定时备份。0 * * * * /home/deployer/zyx/shell/mysql-backup.sh
上面 cron 的格式为:
minute hour day month week command
- cron 表达式不熟练的话,这里推荐一个 cron 生成网站:https://www.pppet.net/
4. 创建定时清理备份文件脚本
-
创建一个脚本:
vim del-backup.sh
-
脚本内容如下:
#!/bin/sh location="/tmp/mysql-backup" find $location -mtime +30 -type f |xargs rm -f
- 说明:
location
:设置查找的目录--mtime +30
:设置改动时间为30天前-type f
:设置查找的类型为文件
-
给该脚本赋于可执行权限:
sudo chmod 755 del-backup.sh
5. 给清理脚本添加定时任务
-
编辑定时任务
sudo crontab -e
-
文件末尾添加 cron 表达式
每月 1 日凌晨 1 点执行清理脚本:
0 0 1 1 * ? * /home/deployer/zyx/shell/del-backup.sh