linux自动备份mysql数据库

 

MYSQL 定期备份是一项重要的工作,但人工操作太繁琐,也难避免有所疏漏,使用下面的方法即可让系统定期备份数据。

 

   1 、创建备份文件夹

 

   #cd /www

 

   #makedir backup

 

   2 、编写运行脚本

 

   #vi autobackup

 

  写入以下内容:

 

   filename=’/bin/date +%Y%m%d’

 

   mysql_bin_dir/mysqldump –opt dataname-u user-ppassword| gzip >/www/mysqlbackup/name$filename.gz

 

  保存退出 ?

 

  说明:

 

   (1)mysql_bin_dir mysql bin 路径;

 

   (2)dataname :数据库名;

 

   (3)user :数据库用户名;

 

   (4)password :用户密码;

 

   (5)name :自定义备份文件前缀标识。

 

  如上例,将自动备份 mysql 数据库,并以 gzip 压缩方式存储,文件名为 name20080101.gz 的形式。

 

   3 、为脚本添加执行权限

 

   #chmod +x autobackup

 

   4 、让 crontab 来完成定期执行的任务

 

  这一步中, Redhat 的方法会不一样,后面专门给出。

 

  编辑 crontab

 

   #vi /etc/crontab

 

  在最后一行中加入:

 

   01 5* * * root /www/autobackup

 

  每天 5 点运行脚本 也可以修改 5 为其他指定时间。

 

   Redhat 方法:

 

   Redhat crontab 采用按时间调用 4 个目录( /etc/cron.hourly :每小时; /etc/cron.daily :每天; /etc/cron.weekly :每周; /etc/cron.monthly :每月)中脚本出来运行的方式。

 

   Redhat 中只需要将刚才编辑的脚本复制到相应的目录即可。

 

   5 、重启 crontab

 

   #/etc/r c.d/init.d/crond restart

 

  完成

 

其实原理很简单,自己制作一个脚本,让 Linux 系统自动运行。我们还可以再扩展一下,编辑一个自动备份网站文件的脚本,让 Linux 来完成,每天自动备份整个网站,等等 ……

 

 

   1 、创建保存备份文件的路径/mysqldata
#mkdir /mysqldata
2
、创建/usr/sbin/bakmysql 文件
#nano /usr/sbin/bakmysql
输入:
#!/bin/sh
  filename=’/bin/date +%Y%m%d’
mysqldump --all-databases -uroot -p
密码 > /shlar/mysqlbak/mysql.sql
注:--all-databases  为备份全部数据库到mysqlbak 下的mysql.sql 文件中,如果把--all-databases 替换为test ,则只备份test 数据库。
3
、修改文件属性,使其可执行
# chmod +x /usr/sbin/bakmysql
4
、修改/etc/crontab
#nano /etc/crontab
在下面添加:
01 3 * * * root /usr/sbin/bakmysql
表示每天3 点钟执行备份。
5
、重新启动crond
# /etc/init.d/cron restart
完成。

你可能感兴趣的:(sql,linux,mysql,redhat,脚本)