
root@debian:~# crontab -e
进入crontab
,添加以下内容:
0 2 * * * find /var/backup/ -mtime +5 -name "*.sql" -delete && docker exec mysql sh -c 'exec mysqldump --all-databases -u<username> -p<password> --all-databases' > /var/backup/bcksql_`date +\%F`.sql
0 2 * * *
:crontab 每天 2 点
find /var/backup/ -mtime +5 -name "*.sql" -delete
:查找该路径下的备份文件,删除 6 天前的备份任务,即保留 7 个版本
-u<username> -p<password>
:数据库的用户名及密码
/var/backup/bcksql_`date +\%F`.sql
:将备份文件保存到该路径下并命名为“bcksql_日期.sql
”(以上路径需要有对应权限,否则无法正常存储)
mysqldump 常用操作示例
备份全部数据库的数据和结构
mysqldump -uroot -p123456 -A > /data/mysqlDump/mydb.sql
备份全部数据库的结构(加 -d 参数)
mysqldump -uroot -p123456 -A -d > /data/mysqlDump/mydb.sql
备份全部数据库的数据(加 -t 参数)
mysqldump -uroot -p123456 -A -t > /data/mysqlDump/mydb.sql
备份单个数据库的数据和结构(数据库名mydb)
mysqldump -uroot-p123456 mydb > /data/mysqlDump/mydb.sql
备份单个数据库的结构
mysqldump -uroot -p123456 mydb -d > /data/mysqlDump/mydb.sql
备份单个数据库的数据
mysqldump -uroot -p123456 mydb -t > /data/mysqlDump/mydb.sql
备份多个表的数据和结构(数据,结构的单独备份方法与上同)
mysqldump -uroot -p123456 mydb t1 t2 > /data/mysqlDump/mydb.sql
一次备份多个数据库
mysqldump -uroot -p123456 --databases db1 db2 > /data/mysqlDump/mydb.sql