ubuntu 安装 rsync ubuntu安装分区
大家好,关于ubuntu 安装 rsync很多朋友都还不太明白,今天小编就来为大家分享关于ubuntu安装分区的知识,希望对各位有所帮助!
rsync安装
在Ubuntu上安装rsync:
执行命令:sudo apt-get install rsync
在RedHat系统中安装rsync:
执行命令:yum install rsync
若选择编译安装,rsync的编译安装过程相当简单,只需完成以下步骤:
在编译目录执行:./configure
执行编译命令:make
安装编译的rsync:make install
值得注意的是,服务器A和B都必须安装rsync。其中,服务器A以rsync服务器模式运行,而服务器B则作为rsync客户端使用。在服务器A上运行rsync守护进程,服务器B则定时运行客户程序备份服务器A上的需要备份的内容。
rsync实现同步备份,兼顾windows+linux两种客户端
确保数据安全,备份策略不可或缺。rsync,这款强大的工具,能够实现跨平台的同步备份,支持Windows和Linux客户端。首先,对于远程服务器,如果你使用的是Debian或Ubuntu系统,或CentOS,需要安装rsync并创建专用用户和组。接着,配置关键文件如/etc/rsyncd.conf和/etc/rsyncd.secrets,后者包含用户密码,务必设置好权限。
在本地备份端,无论是Windows还是Linux,都需要安装rsync客户端。对于Windows用户,可从itefix.net/cwrsync下载cwrsync客户端,将文件解压至指定目录,并创建包含密码的rsync_password.txt文件,注意权限设置。然后编写rsync.bat脚本,并设置计划任务每小时执行一次。
在Linux下,安装rsync后,创建rsync.sh脚本和包含密码的rsync_password.txt文件,同样处理权限,并通过crontab管理计划任务。以上步骤确保了你的数据能够在Windows和Linux环境中高效、安全地进行备份。
rsync服务器架设(数据同步|文件增量备份)
为了实现多个服务器负载均衡,我们需要这几个服务器之间进行数据同步,而rsync软件也能胜任,下面我们来介绍如何架设rsync服务器来达到文件增量备份和数据同步的功能。
什么是rsync
rsync是一个快速增量文件传输工具,它可以用于在同一主机备份内部的备分,我们还可以把它作为不同主机网络备份工具之用。本文主要讲述的是如何自架rsync服务器,以实现文件传输、备份和镜像。相对tar和wget来说,rsync也有其自身的优点,比如速度快、安全、高效。
rsync的安装
在CentOS服务器,我们可以执行以下命令安装
yum install rsync
对于debian、ubuntu服务器,则是以下命令
sudo apt-get install rsync
rsync服务器的配置文件rsyncd.conf
下面我们将涉及到三个文件 rsyncd.conf,rsyncd.secrets和rsyncd.motd。
rsyncd.conf是rsync服务器主要配置文件。
rsyncd.secrets是登录rsync服务器的密码文件。
rsyncd.motd是定义rysnc服务器信息的,也就是用户登录信息。
下面我们分别建立这三个文件。
mkdir/etc/rsyncd
注:在/etc目录下创建一个rsyncd的目录,我们用来存放rsyncd.conf和rsyncd.secrets文件;
touch/etc/rsyncd/rsyncd.conf
注:创建rsyncd.conf,这是rsync服务器的配置文件;
touch/etc/rsyncd/rsyncd.secrets
注:创建rsyncd.secrets,这是用户密码文件;
chmod 600/etc/rsyncd/rsyncd.secrets
注:为了密码的安全性,我们把权限设为600;
touch/etc/rsyncd/rsyncd.motd
注:创建rsyncd.motd文件,这是定义服务器信息的文件。
下一就是我们修改 rsyncd.conf和rsyncd.secrets和rsyncd.motd文件的时候了。
rsyncd.conf文件内容:
复制代码
代码如下:
# Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help
# This line is required by the/etc/init.d/rsyncd script
pid file=/var/run/rsyncd.pid
port= 873
address= 192.168.1.171
#uid= nobody
#gid= nobody
uid= root
gid= root
use chroot= yes
read only= yes
#limit access to private LANs
hosts allow=192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0
hosts deny=*
max connections= 5
motd file=/etc/rsyncd/rsyncd.motd
#This will give you a separate log file
#log file=/var/log/rsync.log
#This will log every file transferred- up to 85,000+ per user, per sync
#transfer logging= yes
log format=%t%a%m%f%b
syslog facility= local3
timeout= 300
[linuxsirhome]
path=/home
list=yes
ignore errors
auth users= linuxsir
secrets file=/etc/rsyncd/rsyncd.secrets
comment= linuxsir home
exclude= beinan/ samba/
[beinan]
path=/opt
list=no
ignore errors
comment= optdir
auth users= beinan
secrets file=/etc/rsyncd/rsyncd.secrets
密码文件:/etc/rsyncd/rsyncd.secrets的内容格式;
用户名:密码
linuxsir:222222
beinan:333333
注:这里的密码值得注意,为了安全,你不能把系统用户的密码写在这里。比如你的系统用户 linuxsir密码是 abcdefg,为了安全,你可以让rsync中的linuxsir为 222222。这和samba的用户认证的密码原理是差不多的;
rsyncd.motd文件;
它是定义rysnc服务器信息的,也就是用户登录信息。比如让用户知道这个服务器是谁提供的等;类似ftp服务器登录时,我们所看到的 ftp……。当然这在全局定义变量时,并不是必须的,你可以用#号注掉,或删除;我在这里写了一个 rsyncd.motd的内容为:
+++++++++++++++++++++++++++
+ rsync 2002-2007+
+++++++++++++++++++++++++++
rsyncd.conf文件代码说明
pid file=/var/run/rsyncd.pid
注:告诉进程写到/var/run/rsyncd.pid文件中;
port= 873
注:指定运行端口,默认是873,您可以自己指定;
address= 192.168.1.171
注:指定服务器IP地址;
uid= nobody
gid= nobdoy
注:服务器端传输文件时,要发哪个用户和用户组来执行,默认是nobody。如果用nobody用户和用户组,可能遇到权限问题,有些文件从服务器上拉不下来。所以我就偷懒,为了方便,用了root。不过您可以在定义要同步的目录时定义的模块中指定用户来解决权限的问题。
use chroot= yes
用chroot,在传输文件之前,服务器守护程序在将chroot到文件系统中的目录中,这样做的好处是可能保护系统被安装漏洞侵袭的可能。缺点是需要超级用户权限。另外对符号链接文件,将会排除在外。也就是说,你在rsync服务器上,如果有符号链接,你在备份服务器上运行客户端的同步数据时,只会把符号链接名同步下来,并不会同步符号链接的内容;这个需要自己来尝试;
read only= yes
注:read only是只读选择,也就是说,不让客户端上传文件到服务器上。还有一个 write only选项,自己尝试是做什么用的吧;
#limit access to private LANs
hosts allow=192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0
注:在您可以指定单个IP,也可以指定整个网段,能提高安全性。格式是ip与ip之间、ip和网段之间、网段和网段之间要用空格隔开;
max connections= 5
注:客户端最多连接数;
motd file=/etc/rsyncd/rsyncd.motd
注:motd file是定义服务器信息的,要自己写 rsyncd.motd文件内容。当用户登录时会看到这个信息。
log file=/var/log/rsync.log
注:rsync服务器的日志;
transfer logging= yes
注:这是传输文件的日志;
[linuxsirhome]
注:模块,它为我们提供了一个链接的名字,链接到哪呢,在本模块中,链接到了/home目录;要用[name]形式;
path=/home
注:指定文件目录所在位置,这是必须指定的;
auth users= linuxsir
注:认证用户是linuxsir,是必须在服务器上存在的用户;
list=yes
注:list意思是把rsync服务器上提供同步数据的目录在服务器上模块是否显示列出来。默认是yes。如果你不想列出来,就no;如果是no是比较安全的,至少别人不知道你的服务器上提供了哪些目录。你自己知道就行了;
ignore errors
注:忽略IO错误,详细的请查文档;
secrets file=/etc/rsyncd/rsyncd.secrets
注:密码存在哪个文件;
comment= linuxsir home data
注:注释可以自己定义,写什么都行,写点相关的内容就行;
exclude= beinan/ samba/
注:exclude是排除的意思,也就是说,要把/home目录下的beinan和samba排除在外; beinan/和samba/目录之间有空格分开;
启动rsync服务器及防火墙的设置
启动rsync服务器
启动rsync服务器相当简单,–daemon是让rsync以服务器模式运行;
/usr/bin/rsync--daemon--config=/etc/rsyncd/rsyncd.conf
rsync服务器和防火墙
Linux防火墙是用iptables,所以我们至少在服务器端要让你所定义的rsync服务器端口通过,客户端上也应该让通过。
iptables-A INPUT-p tcp-m state--state NEW-m tcp--dport 873-j ACCEPT
查看一下防火墙是不是打开了 873端口;
iptables-L
通过rsync客户端来同步数据
rsync-avzP linuxsir@::linuxsirhome linuxsirhome
Password:这里要输入linuxsir的密码,是服务器端提供的,在前面的例子中,我们用的是 222222,输入的密码并不显示出来;输好后就回车;
注:这个命令的意思就是说,用linuxsir用户登录到服务器上,把linuxsirhome数据,同步到本地目录linuxsirhome上。当然本地的目录是可以你自己定义的,比如 linuxsir也是可以的;当你在客户端上,当前操作的目录下没有linuxsirhome这个目录时,系统会自动为你创建一个;当存在linuxsirhome这个目录中,你要注意它的写权限。
说明:
-a参数,相当于-rlptgoD,-r是递归-l是链接文件,意思是拷贝链接文件;-p表示保持文件原有权限;-t保持文件原有时间;-g保持文件原有用户组;-o保持文件原有属主;-D相当于块设备文件;
-z传输时压缩;
-P传输进度;
-v传输时的进度等信息,和-P有点关系,自己试试。可以看文档;
rsync-avzP--delete linuxsir@::linuxsirhome linuxsirhome
这回我们引入一个–delete选项,表示客户端上的数据要与服务器端完全一致,如果 linuxsirhome目录中有服务器上不存在的文件,则删除。最终目的是让linuxsirhome目录上的数据完全与服务器上保持一致;用的时候要小心点,最好不要把已经有重要数所据的目录,当做本地更新目录,否则会把你的数据全部删除;
rsync-avzP--delete--password-file=rsync.password linuxsir@::linuxsirhome linuxsirhome
这次我们加了一个选项–password-file=rsync.password,这是当我们以linuxsir用户登录rsync服务器同步数据时,密码将读取 rsync.password这个文件。这个文件内容只是linuxsir用户的密码。我们要如下做;
复制代码
代码如下:
touch rsync.password
chmod 600 rsync.password
echo"222222" rsync.password
rsync-avzP--delete--password-file=rsync.password linuxsir@::linuxsirhome linuxsirhome
注:这样就不需要密码了;其实这是比较重要的,因为服务器通过crond计划任务还是有必要的;
让rsync客户端自动与服务器同步数据
编辑crontab
crontab-e
加入如下代码:
10 0*** rsync-avzP--delete--password-file=rsync.password linuxsir@::linuxsirhome linuxsirhome
表示每天0点10分执行后面的命令。更多crontab用法请参考