建备份文件夹:
mkdir mysql_data_bak
建脚本文件:
touch autobackupmysql.sh
打开文件
vi autobackupmysql.sh
在脚本中加入如下内容:
filename=`date +%Y%m%d`
/usr/bin/mysqldump -uroot -proot boss >>/home/mysql_data_bak/$filename.sql
检查有没安装crond,如果没有,先安装
yum -y install vixie-cron
yum -y install crontabs
启动服务 :service crond start
在CentOS系统中加入开机自动启动: chkconfig --level 345 crond on
crontab -e
加入内容:00 03 * * * source /root/autobackupmysql.sh 每天凌晨3点运行此文件,对数据库进行备份
service crond restart
完成
方法二
写个自动备份的脚本autobackup.sh,内容如下
#!/bin/bash
mysqldump -p databasename > mydata.sql
2. 更改其为可执行文件 chmod +x autobackup.sh
3. 通过crontab让系统自动运行这个脚本就好了,如crontab -e
0 0 * * * /路径到/autobackup.sh
第一个0表示分钟,第二个0表示0小时也就是零辰第三个*表示每天,第四个*表示每月,第五个*表示每周
方法 三
为了安全可靠,我们应该对mysql服务器进行定时,并将备份分发到多个备份服务器,一般来说备份的任务交给从库比较好,毕竟主库的压力一般比较大.
在从库服务器给添加crontab任务,定时执行备份脚本,代码如下:
#crontab -e
添加以下内容:
1 1 * * * /data/task/backmysql.sh
#vi /data/task/backupmysql.sh
在backupmysql.sh文件中添加以下脚本完成备份,并删除7天前的备份,代码如下:
- #!/bin/bash
- backupdir=/data/backup/mysql
- mysql_bin_dir=/usr/local/mysql/bin
- time=` date +%Y%m%d%H `
- $mysql_bin_dir/mysqldump -u dbuser -pdbpassword dbname | gzip > $backupdir/dbname-$time.sql.gz
- #
- find $backupdir -name "dbname-*.sql.gz" -type f -mtime +7 -exec rm {} ; > /dev/null 2>&1
还没有人抢沙发呢~