1、创建备份目录
mkdir /home/mysql mkdir /home/mysql/backup mkdir /home/mysql/backup/scripts mkdir /home/mysql/backup/files mkdir /home/mysql/backup/logs
2、新建备份脚本
touch /home/mysql/backup/script/backupp.sh vim /home/mysql/backup/script/backupp.sh #!/bin/bash #备份目录 BACKUP_ROOT=/home/mysql/backup BACKUP_FILEDIR=BACKUP_ROOT/logs #当前日期 DATE=BACKUP_FILEDIR/test_$DATE.sql.gz echo -------------------数据库备份成功完成-------------
3、保存脚本
1、保存时可能会遇到用户权限不够,可用sudo命令切换到超级用户下操作
4、执行命令
sh /home/mysql/backup/scripts/backupp.sh
可能会遇到错误提示:mysqldump :command not found
这时需要查找本机mysqldump命令的位置
方法1
find / -name mysqldump
我查到的地址是:/usr/local/mysql/bin/mysqldump,最直接的方式就是直接将它复制到脚本命令上
方法2
然后通过ln命令为mysqldump在/usr/bin创建一个软链接 ln -fs /usr/local/mysql/bin/mysqldump /usr/bin Linux ln命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。 当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。 格式: ln [参数][源文件或目录][目标文件或目录] --参数 -b 删除,覆盖以前建立的链接 -d 允许超级用户制作目录的硬链接 -f 强制执行 -i 交互模式,文件存在则提示用户是否覆盖 -n 把符号链接视为一般目录 -s 软链接(符号链接) -v 显示详细的处理过程 创建链接后,在测试就没有问题了。
重新执行成功后在保存位置就已经生成了备份文件了
4、恢复
!/bin/bash #备份目录 BACKUP_ROOT=/home/mysql/backup BACKUP_FILEDIR=BACKUP_FILEDIR/test_20200228.sql.gz | mysql -u root -ptest! test echo ----------------恢复成功完成-------------
5、定时任务
检查是否安装crontabs
crontab
安装(已安装忽略)
yum -y install vixie-cron yum -y install crontabs
说明:
vixie-cron 软件包是 cron 的主程序;
crontabs 软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
配置(已安装忽略)
cron 是 linux 的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务: service crond start //启动服务 service crond stop //关闭服务 service crond restart //重启服务 service crond reload //重新载入配置 service crond status //查看crontab服务状态 在CentOS系统中加入开机自动启动: chkconfig --level 345 crond on cron 的主配置文件是 /etc/crontab,它包括下面几行: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly 前四行是用来配置 cron 任务运行环境的变量。 SHELL 变量的值告诉系统要使用哪个 shell 环境(在这个例子里是 bash shell); PATH 变量定义用来执行命令的路径。 cron 任务的输出被邮寄给 MAILTO 变量定义的用户名。 如果 MAILTO 变量被定义为空白字符串(MAILTO=""),电子邮件就不会被寄出。 HOME 变量可以用来设置在执行命令或脚本时使用的主目录。 限制对 cron 的使用: /etc/cron.allow和/etc/cron.deny 文件被用来限制对 cron 的使用。 这两个使用控制文件的格式都是每行一个用户。 两个文件都不允许空格。 如果使用控制文件被修改了,cron 守护进程(crond)不必被重启。 使用控制文件在每次用户添加或删除一项 cron 任务时都会被读取。 无论使用控制文件中的规定如何,root 都总是可以使用 cron。 如果 cron.allow 文件存在,只有其中列出的用户才被允许使用 cron,并且 cron.deny 文件会被忽略。 如果 cron.allow 文件不存在,所有在 cron.deny 中列出的用户都被禁止使用 cron。
创建定时备份任务
添加定时任务 crontab -e
两分钟执行一次 #/home/mysql/backup/logs/job_(date +%Y%m%d) 2>&1
查看定时任务
查看定时任务 crontab -l
定时清理历史备份
创建脚本
touch /home/mysql/backup/scripts/backup_history_clean.sh
编写脚本
!/in/bash #定时清理三天前备份文件脚本 echo ---------------定期清理开始------------------- #这里的time 表示 -天 这里是三天前的删除 时间表示的是文件创建时间 find /home/mysql/backup/files -mtime +3 -name "*.gz" -exec rm -rf {} ; echo ---------------定期清理完成-------------------
添加定时任务
添加定时任务 crontab -e
每天凌晨1点执行 00 1 * * * sh /home/mysql/backup/scripts/backup_history_clean.sh
查看定时任务
查看定时任务 crontab -l
相关链接参考:
https://tool.lu/crontab/;http://blog.itpub.net/26736162/viewspace-2641620/