备份数据库
# 备份所有数据库
mysqldump -uroot -p123456 --lock-tables=false --all-databases > /data/mysqlbak/`date +%Y%m%d`.sql
# 备份不同的数据库到不同的目录
mysqldump -uroot -p123456 baskets > /Backups/mysql-backup/databases/baskets/$(date +%Y%m%d_%H%M%S)_baskets.sql
mysqldump -uroot -p123456 edusoho > /Backups/mysql-backup/databases/edusoho/$(date +%Y%m%d_%H%M%S)_edusoho.sql
mysqldump -uroot -p123456 gt > /Backups/mysql-backup/databases/gt/$(date +%Y%m%d_%H%M%S)_gt.sql
mysqldump -uroot -p123456 typecho > /Backups/mysql-backup/databases/typecho/$(date +%Y%m%d_%H%M%S)_typecho.sql
Docker中的数据库备份
# 备份Docker中的数据库到指定目录
docker exec 容器ID或名称 mysqldump -uroot -p密码 --opt ccnet_db > /home/seafile-sqlbak/databases/ccnet_db_$(date +%Y%m%d).sql
删除数据库
# 删除所有30天前的数据库
find /data/mysqlbak -mtime +30 -name "*.*" -exec rm -rf {} \;
# 删除 Local Mysql Databases
find /Backups/mysql-backup/databases/baskets -mtime +30 -name "*.*" -exec rm -rf {} \;
find /Backups/mysql-backup/databases/edusoho -mtime +30 -name "*.*" -exec rm -rf {} \;
find /Backups/mysql-backup/databases/gt -mtime +30 -name "*.*" -exec rm -rf {} \;
find /Backups/mysql-backup/databases/typecho -mtime +30 -name "*.*" -exec rm -rf {} \;
# 删除 Docker Seafile Mysql Databases
find /opt/docker_seafile/seafile-mysql/db/seafile-backup/databases/ccnet_db -mtime +30 -name "*.*" -exec rm -rf {} \;
find /opt/docker_seafile/seafile-mysql/db/seafile-backup/databases/seafile_db -mtime +30 -name "*.*" -exec rm -rf {} \;
find /opt/docker_seafile/seafile-mysql/db/seafile-backup/databases/seahub_db -mtime +30 -name "*.*" -exec rm -rf {} \;
加入Crontab定时任务
crontab -e
# m h dom mon dow command
0 0 * * * /Backups/mysql-backup/mysql-backup.py
0 0 * * * /opt/docker_seafile/seafile-mysql/db/seafile-backup/seafile-backup.py
0 0 * * * /Backups/mysql-backup/mysql-backup-del.py
以上的 0 0 * * *
代表,在每天的凌晨 00:00 分执行脚本。
0 1 */3 * * 代表,每天3的凌晨 01:00 分执行脚本。
0 1 */3 * * 代表,每天3的凌晨 01:00 分执行脚本。
0 1 * 1 * 代表,每天3的凌晨 01:00 分执行脚本。
0 1 * 0 * 代表,每周日的凌晨 01:00 分执行脚本。
0 1 1 * * 代表,每月1号的凌晨 01:00 分执行脚本。
本文为转载,感谢原作者分享。
原文地址:https://blog.dwtowen.com/archives/202/