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、可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的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 #
密码文件存放地址