linux下mysql/sybase自动远程备份...
时间:2010-08-11 来源:baidwypm
实现思路:
编写备份数据库的可执行脚本
按照要求定时自动远行备份数据库的脚本
将备份下来的脚本进行压缩
自动定时上传压缩后的文件到远程主机指定目录
假设client与server的网络配置如下
主机: client server
地址:10.80.1.99 10.80.1.100
掩码: 255.224.0.0 255.224.0.0
网关: 10.80.1.1 10.80.1.1
远程自动上传要先生成密钥:
使用ssh-keygen -t rsa (或 ssh-keygen -d dsa) 产生出 id_rsa, id_rsa.pub(或id_dsa, id_dsa.pub)工具,在/root/.ssh/内生成密钥id_dsa (私钥),id_dsa.pub(公钥)件。把生成的公钥id_rsa.pub上传到要登陆远程主机的/etc/.ssh/目录下,并将其内容追加到authorized_keys文件中 。
这样可以保证使用ssh时可以自动登录,不用手动输入密码
1.首先在/root/backup 目录下建立一个文件夹
#mkdir /root/backup/mysqlbackup
以后会在每天凌晨五点零一分备份一个以时间命名的.sql数据库脚本。
2.创建备份数据库的脚本文件
#cd /root
#mkdir autobackup
#vi mysqlautobackup
输入以下内容
date=`date +%Y%m%d `
注:此处`为Tab键上方按键,前面有空格
dateold=`date -d"-3 day" +%Y%m%d `
mysqldump -databases DB1B2>“/root/backup/mysql$date.sql" –h localhost -uroot –pkdc
tar -czvf /opt/mysql$date.tar.gz /root/backup
scp /opt/mysql$date.tar.gz 10.80.1.200:/root/backup/
ssh 10.80.1.200 rm -rf /opt/backup/mysql$dateold.tar.gz
exit
保存退出!
3.更改权限
#chmod +x /root/autobackup/mysqlautobackup
4.修改crontab
#vi /etc/crontab
添加一行
01 5 * * * root run-parts /root/autobackup (注:此处只要写到备份数据库脚本所在目录即可)
保存退出.
5.重新启动crond服务进程
# /etc/rc.d/init.d/crond restart
注:
1.mysqldump命令讲解
mysqldump 数据库名>"备份文件存放的绝对路径" -h 主机名或IP -u用户名 -p密码
解释:数据库名可以是整个数据库(--all-databases或是-A),也可以是所需备份的库名,详细请参考mysqldump帮助
2.crontab命令讲解
f1 f2 f3 f4 f5 f6 root run-parts /root/autobackup
解释:f1-f6对应的分别是分(00-59)、时(00-23)、天(0-31)、月份(1-12)、星期(0-6)
3.ssh
在Linux系统中,如果知道远程主机IP和密码的情况,我们就可以使用ssh工具来向远程主机上传或下载文件。
登录远程主机
ssh 主机ip 按照提示输入密码
上传文件
scp 上传的文件绝对路径 主机ip:上传到远程主机目录
删除文件
ssh ip rm –rf 远程主机文件的绝对路径