rsync+crontab实现Linux服务器间同步

rsync+crontab实现Linux服务器间同步

环境说明:
工作服务器A:IP地址 192.168.4.193,操作系统 CentOS 5.5

备份服务器B:IP地址 192.168.4.194,操作系统 CentOS 5.5

实现目的:分钟,将A服务器上的用户目录/home,自动备份到B服务器的/home下,不需要任何用户交互。

配置步骤:
1、配置服务器A
 1)[root@Server-B ~]# rpm -qa| grep rsync   #查看是否有rsync包
 rsync-2.6.8-3.1
2)rsync的rpm包本身没有附带rsyncd的配置文件,需要手动创建它(/etc/rsyncd.conf)
[root@Server-B ~]# vi /etc/rsyncd.conf

    #先定义整体变量
  #secrets file = /etc/rsyncd.secrets
  #motd file = /etc/rsyncd.motd
  #read only = yes
  #list = yes
  #uid = nobody
  #gid = nobody
  #hosts allow = 192.168.100.90     #哪些电脑可以访问rsync服务
  #hosts deny = 192.168.100.0/24   #哪些电脑不可以访问rsync服务
  #max connections = 2
  #log file = /var/log/rsyncd.log
  #pid file = /var/run/rsyncd.pid
  l#ock file = /var/run/rsync.lock

  #再定义要rsync目录
  #[home]
  #comment = home
  #path = /home
  #auth users = terry,rsync

#[test]
  #comment = test rsync
  #path = /home/test

secrets file =/etc/rsyncd.secrets

motd file =/etc/rsyncd.motd

read only=yes

list =yes

uid=nobody

gid =nobody

hosts allow =192.168.4.0

#hosts deny=!

max connections =2

log file =/var/log/rsyncd.log

pid file =/var/run/rsyncd.pid

lock file=/var/run/rsync.lock

[home]

comment =home

path=/home

auth users=root

  # vi /etc/rsyncd.motd

  rsyncd.motd记录了rsync服务的欢迎信息,你可以在其中输入任何文本信息,如:

  Welcome to use the rsync services!

  4.services

  # vi /etc/services

  services并不是rsync的配置文件,这一步也可以不做。而修改了services文件的好处就在于系统知道873端口对就的服务名为rsync。修改services的方法就是确保services中有如下两行,没有的话就自行加入:

  rsync  873/tcp  # rsync
  rsync  873/udp  # rsync

  5./etc/xinetd.d/rsync

  # vi /etc/xinetd.d/rsync

  建立一个名为/etc/xinetd.d/rsync文件,输入以下内容:

  service rsync
  {
    disable = no
    socket_type  = stream
    wait      = no
    user      = root
    server     = /usr/local/rsync/bin/rsync
    server_args  = --daemon
    log_on_failure += USERID
  }

  保存后,就可以运行rsync服务了。输入以下命令:

  # /etc/rc.d/init.d/xinetd start

  这样rsync服务就在这台机器上(192.168.4.193)运行起来了,接下来就是如何来使用它了。

客户端实现同步:首先ssh自动登录:

自动ssh/scp方法==
A为本地主机(即用于控制其他主机的机器) ;192.168.4.194
B为远程主机(即被控制的机器Server),192.168.4.193

A和B的系统都是Linux

在A上运行命令:
# ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)
# ssh [email protected] "mkdir .ssh" (需要输入密码)
# scp ~/.ssh/id_rsa.pub [email protected]:.ssh/id_rsa.pub (需要输入密码)

在B上的命令:
# touch /root/.ssh/authorized_keys (如果已经存在这个文件, 跳过这条)
# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys (将id_rsa.pub的内容追加到authorized_keys 中)

回到A机器:
# ssh [email protected] (不需要密码, 登录成功) 

 

  

 shell

#!/bin/bash

/usr/bin/rsync -vazu --progress --delete [email protected]:/home/ /home

编写crontab

 

*/1 * * * * sh /root/back.sh

剩余的工作测试

在测试环境中试过

你可能感兴趣的:(linux,操作系统,服务器,配置文件,IP地址)