当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > Linux 系统下通过脚本实现远程自动备份

Unix/Linux
如何在linux下面运行招商银行专业版
Windows和Linux系统共存 完美解决方案
Linux 和对称多处理应用程序介绍
Red Hat Linux 附加引导和内核引导选项
Linux 2.6.11内核文件IO系统调用详解
走向高手之路 Linux系统内核技术解读
菜鸟乐园 Linux系统内核代码特色一览
Linux内核和传统Unix内核的比较
内核中的物理内存分配函数kernel api
使用 Linux 系统调用的内核命令
详细解析 Linux内核的主要配置选项
内核操作 Linux2.6内核驱动移植参考
Linux内存中Swap和Buffer Cache机制
高手进阶 更换Fedora Core 6的内核
高手风范 Linux操作系统内核编码风格
Linux操作系统内核中工作队列的操作
揭开Linux系统内核调试器的神秘面纱
系统“大挪移” Linux服务器迁移大法
高手进阶 重新编译Linux操作系统的内核
Ubuntu系统关于驱动模块命令的一些使用

Unix/Linux 中的 Linux 系统下通过脚本实现远程自动备份


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-15   浏览: 179 ::
收藏到网摘: n/a

考虑到在本机上备份数据,一旦该机器硬盘出现故障,数据无法取出。远程手动备份数据费时费力且不及时。最好的方法就是通过脚本实现远程自动互备。但远程无论是通过SSH登陆,还是通过scp拷贝文件都需要输入密码。为了克服这个问题,首先需要实现不需要密码的SSH登陆,这样就可以使用rsync,scp,rexec等命令来做的远程备份了。

1. 设置无需密码的ssh登陆,方法如下:
假设A,B两服务器,现在需要在A机上用root登陆B机,而不需要输入密码,那我们可按照下面的步骤来做:
1)在A机上生成钥匙对,执行以下命令:
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_rsa
Enter passphrase (empty for no passphrase):直接回车
Enter same passphrase again:直接回车
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
f6:61:a8:27:35:cf:4c:6d:13:22:70:cf:4c:c8:a0:23 root@host1

这样,在/root/.ssh/路径下会生成id_rsa,和id_rsa.pub,其中id_rsa是密钥,id_rsa.pub是公钥。

2)把在A机生成的id_rsa.pub拷贝到B机上,假设拷贝到B机的临时目录下,如:
scp /root/.ssh/id_rsa.pub [email protected]:/tmp
3)用root帐号登陆B机,进入其主目录,创建authorized_keys文件,并设置好权限。
cd ~/.ssh
cat /tmp/id_rsa.pub >>authorized_keys
chmod  400 authorized_keys
rm -f /tmp/id_rsa.pub

4)测试
在A机上转到root帐号,尝试登录B机。看看是不是不要密码.
说明:
authorized_keys文件的权限很重要,如果设置为777,那么登录的时候,还是需要提供密码的。
记得将临时目录下的id_rsa.pub删除,养成个好习惯。
方法在Red Hat9.0上测试通过。


2. 编辑crontab文件
vi /etc/crontab
设置每天凌晨3:00执行cron.daily中的脚本:
00 3 * * * root run-parts /etc/cron.daily

3.编辑cron.daily中的脚本
cd /etc/cron.daily/
vi backupdb

pg_dump -U postgres voipack > /voipack.sql
pg_dump -U postgres regserver > /regserver.sql
tar -cvjf /aavm.tgz.bz2 /usr/local/aavm
tar -cvjf /oracle.tgz.bz2 /var/oracle
scp /voipack.sql [email protected]:/root/218.242.214.23_backup
scp /regserver.sql [email protected]:/root/218.242.214.23_backup
scp /aavm.tgz.bz2 [email protected]:/root/218.242.214.23_backup
scp /oracle.tgz.bz2 [email protected]:/root/218.242.214.23_backup

将23上产生的备份文件copy到218.242.214.20:/root/218.242.214.23_backup路径下

同样的方法可以将假设B服务器上的数据备份到A服务器,实现双机的互备。