Linux下自动备份mysql数据库(附执行脚本程序)

开启数据库备份计划任务

#!/bin/bash
#crontab -e 启用定时任务 * 分 时 日 月 周
#0 3 * * * /var/www/database_mysql_backup.sh

配置计划任务database_mysql_backup.sh脚本

DATE=date +%Y%m%d%H%M              #every minute
DATABASE=wordpress              #database name
DB_USERNAME=root                      #database username
DB_PASSWORD=”root”                    #database password
BACKUP_PATH=/home/robin/mysql_backup   #backup path

#backup command

/usr/bin/mysqldump -u$DB_USERNAME -p$DB_PASSWORD -h 127.0.0.1 -R –opt $DATABASE | gzip > ${BACKUP_PATH}\/${DATABASE}_${DATE}.sql.gz

#保留5天数据

find ${BACKUP_PATH} -mtime +5 -name“${DATABASE}_*.sql.gz” -exec rm -f {} \;

注意事项

  • 如果有多个数据库可以分别设定数据库名称、登录用户名、密码等项即可
  • 该计划任务是在服务器上执行的,所以IP地址填写的是127.0.0.1,如果是在其它终端上执行该任务,只需变更IP地址为服务器IP地址
  • 计划任务执行的sh脚本,可以放在任何地方,只需根据情况修改路径
  • BACKUP_PATH是备份文件的保存路径,根据情况替换成自己的路径

利用chattr命令保护备份及其它关健文件

因为工作需要,要对一些重要数据进行备份,但又怕不小心将这些备份文件删除掉,于是就想办法将这些文件保护起来,经多方查找,发现了Linux有一个chattr命令可以实现这一目的。

chattr命令基本语法:

chattr [-RV][-v<版本编号>][+/-/=<属性>][文件或目录...]

属性有以下参数:

A:即Atime,告诉系统不要修改对这个文件的最后访问时间。

S:即Sync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。

a:即Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。

阅读更多