crontab 配置
crontab 中添加
30 4 * * * /usr/bin/mysqldump -uuser db > /path/to/backups/db-`date +"\%Y_\%m_\%d_\%H"`.sql
即每天凌晨 4 点半进行自动备份
注意,这里不要加 -p 参数。
如何自动输入密码
不安全的方式是
直接在 crontab mysqldump 命令的参数中用 -p 指定密码,但是这样做有巨大的风险。
因为,任何用户都可以通过 ps axuw | grep mysqldump 看到进程的命令参数。
一种安全的方式是
在用户的根目录添加配置文件 .my.cnf
[mysqldump]
password=my_password
配置中可以忽略用户名
然后删除该文件对于其他用户的可读权限
chmod 600 .my.cnf
对备份文件进行压缩
目前的做法还不够完美,因为定期备份会占用大量的磁盘空间。
例如一个 1.2M 的数据库备份文件,gzip 之后只有 489K。
30 4 * * * /usr/bin/mysqldump -uuser db | /bin/gzip > /path/to/backups/db-`date +"\%Y_\%m_\%d_\%H"`.sql.gz
解压方法
gunzip -k some_backup.sql.gz
加 -k 参数的目的是,为了保留原压缩文件
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式