使用crontab自动备份mysql中的数据库,例如wordpress数据库

使用命令:mysqldump

reference doc

可以使用mysql专用的mysqldump,下面这个语句即可创建一个

mysqldump -u root -p [DB NAME] > backup.sql
  • 这里-p后面也可以接password明码,然而容易暴露密码,并不好。如何解决这个问题见下一节
  • 另外,可以不用mysql的root来dump WP的数据库,WP数据库是可以用当初建立的单独的用户来dump的,所以降低了mysql的root密码暴露的风险。
  • 上面命令的[DB NAME]处,通过 ps aux|grep mysql,找到正在运行的mysql进程,其中–datadir对应的位置即当前数据库的位置,备份该位置的对应数据库即可。

自动化的crontab备份方案

参考megamorf答复

这里-p后面也必须接password才能够进行备份;然而直接在命令行容易暴露密码,并不好。

上面的问题,通过在对应用户的根目录创造一个文件./my.cnf,该文件的权限改为600权限,这样就只有这个用户能够看到了。

另外地,调试一下命令看效果,diff发现文件没有差别,就可以写到crontab中了。通过以下语句编辑:

crontab -e

下一步优化:

  1. 服务器定期压缩备份。
  2. 用pc机,隔一段时间从服务器的backup文件夹中拷贝相应的备份文件。
  3. 定时备份到移动硬盘(timemachine已经做了这一步了)

发表评论

电子邮件地址不会被公开。 必填项已用*标注