admin 管理员组

文章数量: 887021


2023年12月24日发(作者:可以承受百万数据的开源程序)

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

1、创建备份文件夹

#cd /www

#makedir backup

2、编写运行脚本

#vi autobackup

写入以下内容:

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

mysql_bin_dir/mysqldump

gzip >/www/mysqlbackup/name$

保存退出?

说明:

(1)mysql_bin_dir:mysql的bin路径;

(2)dataname:数据库名;

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

(4)password:用户密码;

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

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

3、为脚本添加执行权限

#chmod +x autobackup

–opt dataname-u user-ppassword|

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

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

编辑crontab:

#vi /etc/crontab

在最后一行中加入:

01 5* * * root /www/autobackup

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

Redhat方法:

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

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

5、重启crontab

#/etc/rc.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/

注:--all-databases 为备份全部数据库到mysqlbak下的文件中,如果把

--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

完成。


本文标签: 脚本 备份 自动 备份文件 编辑