一聚教程网:一个值得你收藏的教程网站

热门教程

ubuntu利用crontab定时备份mysql方法小结

时间:2022-06-30 19:29:24 编辑:袖梨 来源:一聚教程网

ubuntu定时备份mysql,首先要写一段shell脚本,用来备份mysql数据库,再通过crontab定时执行备份mysql数据库的shell脚本。

1.备份mysql的shell脚本如下:

 代码如下 复制代码
#!/bin/bash
date_str=$(date +%Y%m%d-%T)
cd /home/steven/backup
mysqldump -h localhost -u root --password=xxxx -R -E -e
  --max_allowed_packet=1048576 --net_buffer_length=16384 databaseName
   | gzip > /home/steven/backup/juziku_$date_str.sql.gz

   
   
  
把上面这个脚本存放位置:/home/steven/mysql_backup.sh (当然,也可以放在其他位置)

再赋于执行的权限,通过下面命令:

 代码如下 复制代码
sudo chmod +x /home/steven/mysql_backup.sh

完成这步,我们就来执行一下这段脚本,看能不能备份mysql数据库。
在命令行输入

 代码如下 复制代码

./mysql_backup.sh

就可以看到备份好的数据库文件了


2.完成上面这步,就可以备份mysql数据库了,接下来,我们再通过crontab定时执行这段脚本。
使用crontab -e命令,这个命令的使用比较简单。
在命令行输入中,直接输入 crontab -e
就会打开一个编辑窗口,最后一行会有内容格式的提示:

 代码如下 复制代码
# m h dom mon dow command

具体意义表示:分钟 小时 日期 月份 星期 命令,在某月(mon)的某天(dom)或者星期几(dow)的几点(h,24小时制)几分(m)执行某个命令(command),*表示任意时间。例如:0 3 * * * /home/steven/mysql_backup.sh就是:每天早上3点,执行mysql_backup.sh脚本。

我们只要在里面添加一行就行了,内容如下:

 代码如下 复制代码

# 备份mysql数据库 每天早上3点整执行 

 0 3 * * * /home/steven/mysql_backup.sh

这样,每天早上3点,就会自动备份mysql数据库了

另一个实例 crontab

利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。

1、创建保存备份文件的路径/mysqldata

 代码如下 复制代码
#mkdir /mysqldata 

2、创建/usr/sbin/bakmysql文件

 代码如下 复制代码

#vi /usr/sbin/bakmysql  输入


rq=` date +%Y%m%d `
tar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql

或者写成

 

 代码如下 复制代码
rq=` date +%Y%m%d `
mysqldump --all-databases -u root -p980405 > /mysqldata/mysql$rq.tar.gz
/var/lib/mysql

是你数据库文件的目录,部分用户是/usr/local/mysql/data,每个人可能不同

/mysqldata/表示保存备份文件的目录,这个每个人也可以根据自己的要求来做。


3、修改文件属性,使其可执行

 代码如下 复制代码
# chmod +x /usr/sbin/bakmysql 

4、修改/etc/crontab

#vi /etc/crontab  在下面添加

 

 代码如下 复制代码
01 3 * * * root /usr/sbin/bakmysql 表示每天3点钟执行备份


5、重新启动crond

 代码如下 复制代码
# /etc/rc.d/init.d/crond restart

完成。

这样每天你在/mysqldata可以看到这样的文件

mysql20040619.tar.gz  你直接下载就可以了。


在tar命令执行前,停止数据库服务进程或锁定数据库,

否则恢复数据时,会出现数据库损坏的情形,运气好时可修复,运气不好时就不可以了。

热门栏目