linux每天定时备份MySQL数据库并删除五天前的备份文件
星期五, 2017-03-17 | Author: Lee | Database, JAVA-and-J2EE | 2,132 views
MYSQL定期备份常用脚本如下:
1. mkdir -p /bak/mysqlbak 2.vi bakmysql.sh 内容如下 #!/bin/bash # Name:bakmysql.sh # This is a ShellScript For Auto DB Backup and Delete old Backup # backupdir=/bak/mysqlbak time=` date +%Y%m%d%H ` /usr/local/webserver/mysql/bin/mysqldump -root-pxxx -S /tmp/mysql.sock xx| gzip > $backupdir/xx_$time.sql.gz # find $backupdir -name "xx_*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1 |
说明:
代码中time=` date +%Y%m%d%H `也可以写为time=”$(date +”%Y%m%d$H”)”
其中`符号是TAB键上面的符号,不是ENTER左边的’符号,还有date后要有一个空格。
mysql_bin_dir:mysql的bin路径;
dataname:数据库名;
user:数据库用户名;
password:用户密码;
name:自定义备份文件前缀标识。
-type f 表示查找普通类型的文件,f表示普通文件。
-mtime +5 按照文件的更改时间来查找文件,+5表示文件更改时间距现在5天以前;如果是 -mmin +5 表示文件更改时间距现在5分钟以前。
-exec rm {} \; 表示执行一段shell命令,exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。
/dev/null 2>&1 把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准出错都扔到垃圾桶里面;其中的& 表示让该命令在后台执行。
3、为脚本添加执行权限
# chmod +x bakmysql.sh
4.加入到定时任务中去
crontab -e
添加00 3 * * * root /root/bakmysql.sh
表示每天3点00分执行备份
注:crontab配置文件格式如下:
分 时 日 月 周 命令
5.恢复数据备份文件:
非压缩备份文件恢复:
#mysql -u root -p dataname < namexxx.sql
从压缩文件直接恢复:
#gzip < namexxxx.sql.gz | mysql -u root -p dataname
或:
# zcat namexxx.sql.gz | mysql -u root -p
文章作者: Lee
本文地址: https://www.pomelolee.com/1708.html
除非注明,Pomelo Lee文章均为原创,转载请以链接形式标明本文地址
No comments yet.
Leave a comment
Search
相关文章
热门文章
最新文章
文章分类
- ajax (10)
- algorithm-learn (3)
- Android (6)
- as (3)
- computer (85)
- Database (30)
- disucz (4)
- enterprise (1)
- erlang (2)
- flash (5)
- golang (3)
- html5 (18)
- ios (4)
- JAVA-and-J2EE (186)
- linux (143)
- mac (10)
- movie-music (11)
- pagemaker (36)
- php (50)
- spring-boot (2)
- Synology群晖 (2)
- Uncategorized (6)
- unity (1)
- webgame (15)
- wordpress (33)
- work-other (2)
- 低代码 (1)
- 体味生活 (40)
- 前端 (21)
- 大数据 (8)
- 游戏开发 (9)
- 爱上海 (19)
- 读书 (4)
- 软件 (3)