Rsync文件备份

Rsync 文件备份
安装环境下 debian
apt-cdrom add rsync ( 下载安装包 rsync_ 2.6.8 -1bpo1_i38.deb, 安装 dpkg �Ci rsync_2.6.8-1bpo1_i38.deb)
查找 man rsyncd.conf   whereis rsync  locate which   tail -f /var/log/syslog
 
服务器端配置:
vim  /etc/default/rsync
RSYNC ―― ENABLE=TRUE
touch rsyncd.conf
uid = nobody
gid = nogroup
use chroot = no
max connections = 4
syslog facility = local5
pid file = /var/run/rsyncd.pid
  [test]
               path = /root/fang 服务器上共享目录
               comment = CVS repository (requires authentication)
               auth users = tridge, susan 用户
               secrets file = /etc/rsyncd.secrets  密码文件放在的位置
 
       The /etc/rsyncd.secrets file would look something like this:
 
              tridge:mypass
              susan:herpass
touch  /etc/rsync.secrets  chmod 600 rsync.secrets
tridge:mypass  用户:密码     fang:123456
 
客户端
apt-cdrom add rsync ( 下载安装包 rsync_ 2.6.8 -1bpo1_i38.deb, 安装 dpkg �Ci rsync_2.6.8-1bpo1_i38.deb)
cd /etc/
etc/: touch  fangzhu
vi fangzhu  
123456
 
chmod 600 fangzhu
 
测试
rsync -vurtopbg --progress --password-file /root/fang [email protected]::test /root/fang  备份到的目录
 
 
 
 
 
uid = nobody
gid = nobody
max connections = 200
timeout = 600
use chroot = no
read only = yes
pid file=/var/run/rsyncd.pid
host_allow =192.168.23.100
#syslog facility = local7
#log file=/var/log/rsyncd.log
#rsync config
#The 'standard' things
[rsync_gmmold]
path = /gmm/old
comment = gmmold
uid = nobody
gid = nobody
use chroot = no
max connections = 4
syslog facility = local5
pid file = /var/run/rsyncd.pid
 
[ftp]
path = /var/ftp/pub
comment = whole ftp area (approx 6.1 GB)
 
 
 
Rsync 安装和配置文档
一、rsync简介 

rsync
是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了――remote sync。它的特性如下: 

1
、可以镜像保存整个目录树和文件系统。 
2
、可以很容易做到保持原来文件的权限、时间、软硬链接等等。 
3
、无须特殊权限即可安装。 
4
、优化的流程,文件传输效率高。 
5
、可以使用rcpssh等方式来传输文件,当然也可以通过直接的socket连接。 
6
、支持匿名传输。
二、rsync的安装、配置
一、Solaris
1
、安装
下载rsync- 2.6.8 -sol9-sparc-local.gz/tools
#cd /tools/
#gunzip rsync-2.6.8-sol9-sparc-local.gz
#pkgadd �Cd ./rsync-2.6.8-sol9-sparc-local
2
、配置(服务端)
1
、建立rsync传输的用户名和密码
#cat /etc/rsync.scrt
#
前面一个域为用户名,后面一个域是对应用户的密码,中间用:号分隔
test_user:user_password
设置相应权限
#chmod root:root /etc/rsync.scrt
#chmod 600 /etc/rsync.scrt

2
、建rsync的配置文件
#cat /etc/rsyncd.conf

uid = nobody
gid = nobody
use chroot = no
#
客户端最大连接数
max connections = 4
#PID
LOCK文件位置
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
#
日志文件位置
log file = /var/log/rsyncd.log

设置可以镜像的目录及相关
#
认证的模块名,在client端需要指定
[test]
可以镜像的目录
path = /test
#
对用途的说明
comment = testcomment
#
服务器上的目录及文件可写
read only = no
list = no
#
允许进行rsync的客户端网段或IP
hosts allow=192.168.200.0/24

#
可镜像此目录的用户名,当用多个用户时,可用,号进行分开
auth users = sun,moon
声明密码文件
secrets file = /etc/rsyncd.scrt


3
、启动和关闭:
cat /etc/init.d/rsyncd(
详见以下链接)

[url]http://ceass.com/upload/rsyncd-1158126214.txt[/url]

chmod 700 /etc/init.d/rsyncd
ln �Cs /etc/init.d/rsyncd /etc/rc2.d/S99rsyncd
ln �Cs /etc/init.d/rsyncd /etc/rc0.d/K99rsyncd
ln �Cs /etc/init.d/rsyncd /etc/rc5.d/K99rsyncd
ln �Cs /etc/init.d/rsyncd /etc/rc6.d/K99rsyncd
3
、配置(客户端)
1
、建立密码文件
#cat /etc/rsync.scrt
user_password
#chmod root:root /etc/rsync.scrt
#chmod 600 /etc/rsync.scrt

2
、运用crontab工具进行同步调度
#crontab �Cl
#
每分钟执行一次数据同步,并写入日志
* * * * * /opt/tools/rsync.sh >>/opt/tools/rsync.log 2>&1
3
、建立同步程序
#cat /opt/tools/rsync.sh
#!/sbin/sh
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Export PATH
echo
echo Beginning sync:`date +'%Y/%m/%d %H:%M'`
echo --------------------------------------------------------------
PASSWD_FILE=/etc/inburst.pas
HOST=baidu1
LOCAL_PATH=/test
USER=sun
OPTS=" -vzrtopg --safe-links --progress --exclude "mm/" --password-file=$PASSWD_FILE"

echo --------------------------------------------------------------
echo End sync:`date +'%Y/%m/%d %H:%M'`
echo
#
下面对各个参数进行说明,
v
代表显示详细同步信息,
z
代表压缩,
r
代表递归,
t
代表保持原有保持时间,
o
代表保持原有属主,
g
代表保持原有属组,
p
代表保持原有许可,
--safe-links
忽略软链接
--progress
代表显示进度,
--exclude
代表除去某个文件夹或文件,后用双引号指出文件或文件夹,
--password-file
指定向服务认证的密码文件,
$USER
是一个变量,此用户必须在server的认证模块下指定。
$HOST
是一个变量,代表服务器的IP或可解析的主机名或域名,
test
代表服务端的认证模块,
$LOCAL_PATH
代表本地路径

rsync $OPTS $USER@$HOST::test $LOCAL_PATH

echo End sync:`date +'%Y/%m/%d %H:%M'`
二、linux
1
、安装
一般情况下linux下已经安装,如果没有安装可以用相应的操作系统光盘装上进行安装
#rpm �Cqa|grep rsync
2
、配置(服务端)
1
、建立rsync传输的用户名和密码
solaris
2
、建rsync的配置文件
solaris
3
、启动和关闭:
修改/etc/xinetd.d/rsync
disable = yes -----à disable=no
然后重启xinetd
#kill �CHUP `cat /var/run/xinetd.pid `
3
、配置(客户端)
1
、建立密码文件
solaris
2
、运用crontab工具进行同步调度
solaris
3
、建立同步程序
solaris
三、调试
请查看服务端和客户端相对应的日志
一、服务端
cat /var/log/rsyncd.log
二、客户端
cat /opt/tools/rsync.log
uid = nobody
gid = nobody
max connections = 200
timeout = 600
use chroot = no
read only = yes
pid file=/var/run/rsyncd.pid
host_allow =192.168.23.100
#syslog facility = local7
#log file=/var/log/rsyncd.log
#rsync config
#The 'standard' things
[rsync_gmmold]
path = /gmm/old
comment = gmmold
[root@localhost log]# cat rsyncd.log 
2008/08/08  23:25:43 [5083] rsyncd version  2.6.3  starting, listening on port 873
2008/08/09  00:18:44 [5083] rsync error: received SIGUSR1 or SIGINT (code 20) at rsync.c(231)
2008/08/09  02:49:41 [4096] rsyncd version  2.6.3  starting, listening on port 873
2008/08/09  02:49:41 [4096] unable to bind any inbound sockets on port 873
2008/08/09  02:49:41 [4096] rsync error: error in socket IO (code 10) at socket.c(448)
2008/08/09  02:59:26 [4215] rsyncd version  2.6.3  starting, listening on port 873
2008/08/09  02:59:26 [4215] unable to bind any inbound sockets on port 873
2008/08/09  02:59:26 [4215] rsync error: error in socket IO (code 10) at socket.c(448)
2008/08/09  03:13:23 [4255] rsyncd version  2.6.3  starting, listening on port 873
2008/08/09  03:13:23 [4255] unable to bind any inbound sockets on port 873
2008/08/09  03:13:23 [4255] rsync error: error in socket IO (code 10) at socket.c(448)
2008/08/09  03:14:06 [4303] rsyncd version  2.6.3  starting, listening on port 873
2008/08/09  03:14:06 [4303] unable to bind any inbound sockets on port 873
2008/08/09  03:14:06 [4303] rsync error: error in socket IO (code 10) at socket.c(448)
2008/08/09  03:28:58 [4366] rsyncd version  2.6.3  starting, listening on port 873
2008/08/09  03:28:58 [4366] unable to bind any inbound sockets on port 873
2008/08/09  03:28:58 [4366] rsync error: error in socket IO (code 10) at socket.c(448)
2008/08/09  03:33:29 [4371] rsyncd version  2.6.3  starting, listening on port 873
2008/08/09  03:33:29 [4371] unable to bind any inbound sockets on port 873
2008/08/09  03:33:29 [4371] rsync error: error in socket IO (code 10) at socket.c(448)
2008/08/09  03:34:48 [4446] rsyncd version  2.6.3  starting, listening on port 873
2008/08/09  03:34:48 [4446] unable to bind any inbound sockets on port 873
2008/08/09  03:34:48 [4446] rsync error: error in socket IO (code 10) at socket.c(448)
 
 
 
 
Linux as 4 下文件服务境像
插入第二张光盘 tar zvxf     rsync- 2.6.3 -1
 More /etc/rsyncd.conf
uid = nobody
gid = nobody
use chroot = no
max connections = 4
syslog facility = local5
pid file = /var/run/rsyncd.pid
[test]
path=/avsuper/dmb
comment=bhzy
secrets file = /etc/rsyncd.sec
 
more /etc/rsyncd.sec
 
fangzhu:123456
 
chmod 600 rsyncd.sec
 
vi /etc/xinetd.t/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
#       allows crc checksumming etc.
service rsync
{
        disable = no
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}
 
然后就可以启动 SERVER 端的 RSYNC 程序了,如果上述配置不正确, rsync 是无法正常启动的
启动方案
 
server 端将 rsync 以守护进程形式启动
bash-2.03# rsync --daemon
如果要在启动时把服务起来,有几种不同的方法,比如:
a 、加入 inetd.conf
  编辑 /etc/services ,加入 rsync 873/tcp ,指定 rsync 的服务端口是 873
  编加 /etc/inetd.conf ,加入 rsync stream tcp nowait root /bin/rsync rsync --daemon
b 、加入 rc.local
  在各种操作系统中, rc 文件存放位置不尽相同,可以修改使系统启动时 rsync --daemon 加载进去。
启动服务
   #/usr/bin/rsync --daemon
4. 加入开机启动
   echo "/usr/bin/rsync --daemon" >> /etc/rc.local
5. 检查rsync时候启动
   # ps -ef | grep rsync
6. 停止服务
   #kill `cat /var/run/rsyncd.pid`
 
~ netstat -na|grep 873
uid = nobody
gid = nobody
use chroot = no         #
不使用 chroot
max connections = 4     #
最大连接数为 4
pid file = /var/run/rsyncd.pid           #
进程 ID 文件
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log    #
日志记录文件
secrets file = /etc/rsyncd.pwd    #
认证文件名 , 主要保存用户密码,权限建议设为 600 ,所有者 root

[module]            #
这里是认证的模块名,在 client 端需要指定
path = /var/mail    #
需要做镜像的目录
comment = backup xxxx #
注释
ignore errors         #
可以忽略一些无关的 IO 错误
read only = yes       #
只读
list = no             #
不允许列文件
auth users = postfix  #
认证的用户名,如果没有这行,则表明是匿名
可以编写脚本 rsync.sh
#!/bin/sh
rsync -vzrtopg --progress --delete [email protected]::rsyncd /home/test --password-file=/etc/rsync.secret

然后将该脚本加入到 /etc/crontab 文件中 定时执行更新。
 
uid = nobody # 进行备份的用户 nobody 为任何用户
gid = nobody #
进行备份的组 nobody 为任何组
use chroot = no #
不使用 chroot
max connections = 10 #
最大连接数
log file = /var/log/rsyncd.log #
日志文件

[rsyncd] #
这里是认证的模块名
path = /home/test/ #
参与同步的目录
ignore errors #
可以忽略一些无关的 IO 错误
read only = yes #
只读
list = no #
不允许列清单
anth users = root #
认证的用户名
secrets file = /etc/rsyncd.secrets #
密码文件存放地址
 

你可能感兴趣的:(Debian,职场,rsync,休闲,文件备份)