linux配置ssh+rsync

 1、scp: scp 命令是 SSH 中最方便实用的吩咐了,scp正是secure
copy,是用来进行长距离文件拷贝的。数据传输使用 ssh,并且和ssh
使用同样的求证格局,提供平等的武威保险 。 与rcp 不一样的是,scp
在急需开展表达时会需求你输入密码或口令。
scp [options] [本地客户名@IP地址:]文件名 1 [长距离顾客名 @IP 地址 :]
文件名 2
       -v 用来呈现速度 . 能够用来查看连接 , 认证 , 或是配置错误 .
 
-C 使能减小选项 .
 
-P 采纳端口 . 注意 -p 已经被 rcp 使用 .
 
-4 强行使用 IPV4 地址 .
 
-6 强行使用 IPV6 地点 .
 
-r Recursively copy entire directories.
 
       -p  保留原本的一些品质
举例来讲:scp -p test.sh
10.48.30.191:/root(将当前目录下的test.sh文件拷贝到10.48.30.191root目录下)
          scp 10.48.30.191:/root/test.sh /root
(把191root下的test.sh文件拷贝到本机root目录下)
2、rcp:RCP is not a secure or encrypted method of transferring files.
   
rcp命令有二种格式。第一种格式用于文书到文件的正片;第三种格式用于把公文或目录拷贝到另叁个目录中。
rcp [options]
[[[email protected]]host1:]file1

[[[email protected]]host2:]file2
options:    -r
递归地把源目录中的全部剧情拷贝到目标目录中。要接纳那几个选项,指标必得是一个目录。
-p 试图保留源文件的更动时间和方式,忽略umask。
  例如:rcp -p test.sh
10.48.30.191:/root(将当前目录下的test.sh文件拷贝到10.48.30.191root目录下)
          rcp 10.48.30.191:/root/test.sh /root
(把191root下的test.sh文件拷贝到本机root目录下)
3、sftp:安全文件传输公约
    sftp 与 ftp 有着大致同样的语法和意义。S
    FTP 为 SSH的一部份,是一种传输档案至 Blogger
伺服器的贵港情势。SFTP本人未有独立的医生和护师进度,它必需接纳sshd守护进程(端口号私下认可是22)来完毕相应的连天操作。
   
使用SFTP是不行安全的。可是,由于这种传输格局使用了加密/解密手艺,所以传输作用比普通的FTP要低得多,倘令你对互联网安全性供给更加高时,能够选取SFTP替代FTP。
    用法比方:sftp
[email protected]:/root/test.sh(直接将192上的文件复制到本地)
                     sftp
[email protected]:/root 
(直接连接到192的root目录下,那样就足以采纳get put等一声令下了)
                     当您选拔security CRT时,能够使用飞速键Alt + p
,能够一向连接到windows的顾客家目录。就能够将windos当地的公文上传到linux中,也得以从linux中下载所需的文书。
4、rsync:是类unix系统下的多少镜像备份工具
可以镜像保存整个目录树和文件系统,能够很轻松做到保证原本文件的权能、时间、软硬链接等等,优化的流程,文件传输功能高。能够动用rcp、ssh等办法来传输文件,当然也可以通过直接的socket连接。
亟需留心的是必得在服务器A和B上都设置rsync,当中A服务器上是以服务器情势运转rsync,而B上则以客商端格局运行rsync。那样在web服务器A上运营rsync守护进度,在B上按期运转顾客程序来备份web服务器A上需求备份的始末。
   服务器端运转:
       usr/bin/rsync –daemon –config=/etc/rsyncd/rsyncd.conf
 
兴许须求root权限运营.
 
/etc/rsyncd/rsyncd.conf 是你刚刚编辑的rsyncd.conf的地方.
 
也足以在/etc/rc.d/rc.local里投入让系统活动运转等.
 
 客商端运行:
    rsync [OPTION] SRC [SRC]
[[email protected]]HOST:DEST
  option:
  -a 参数,也等于-rlptgoD,-r 是递归 -l
是链接文件,意思是拷贝链接文件;-p 代表保持文件原有权限;-t
保持文件原有的时候间;-g 保持文件原有客商组;-o 保持文件原有属主;-D
相当于块设备文件;
 
-z 传输时压缩
 
-P 传输速度;
 
-v 传输时的速度等新闻,和-P有一点关系,自个儿探求。能够看文书档案;

贯彻web数据同步的三种艺术

1、nfs落成web数据分享
2、rsync +inotify达成web数据同步
3、rsync+sersync越来越快更节约能源完结web数据同步

 

作者“lovecode”

4、unison+inotify完毕web数据双向同步

一、nfs完成web数据分享

ca88会员登录入口 1
nfs能完成数据同步是经过NAS(互连网附加存款和储蓄),在服务器上分享二个文书,且服务器要求设置文件系统的权力和陈设文件设置的权柄,权限两个之间取交集,然后顾客端把分享的文本挂载到本地,客商端对文本有读写权限,则实现数据的一道。
nfs+web:服务器端的配备:
1)、安装相关软件,httpd提供web服务,nfs-utils提供nfs服务
[[email protected]
~]# yum -y install httpd nfs-utils
2)、设置web的有关安顿,使得web能够提供web服务

. 代码如下:

[[email protected]
~]# vim /etc/httpd/conf/httpd.conf
########################################
ServerName 172.16.22.1:80
#DocumentRoot “/var/www/html”
#提供设想主机,注释暗中认可存放网页文件的门道
<VirtualHost *:80>
ServerName www.jie.com
DocumentRoot /web/htdocs
</VirtualHost>
#######################################
[[email protected]
~]# mkdir -pv /web/htdocs #创办寄放网页的目录
[[email protected]
~]# cd /web/htdocs/
[[email protected]
htdocs]# touch index.html test.html test.php
[[email protected]
htdocs]# ls
index.html test.html test.php
[[email protected]
htdocs]# echo “This is Jie1 Web+nfs Server” >index.html
[[email protected]
htdocs]# httpd -t #反省web的配备文件是或不是有语法错误
Syntax OK
[[email protected]
htdocs]# service httpd start #开启web服务
Starting httpd: [ OK ]
3)、设置nfs的有关布署,分享网页文件
. 代码如下:

[[email protected]
htdocs]# id apache
#安装httpd软件后,系统会创制apache用户,查看apache的id号
uid=48(apache) gid=48(apache) groups=48(apache)
[[email protected]
htdocs]# vim /etc/exports
######################################
/web/htdocs 172.16.22.3(rw,sync,root_squash,anonuid=48,anongid=48)
#nfs是以id号来鲜明是或不是能访谈分享的文本的,因为七个服务器都设置了httpd软件,都会有apache客商,所以apache顾客的id号能访谈分享的文书
#/web/htdocs 分享的目录
#172.16.22.3 钦点客商端能分享此文件,多少个客商端用逗号隔离
#rw,读写权限
#sync,同步方式
#root_squash,压缩root顾客的权位
#anonuid=48,内定此客户的id能访谈分享文件
#anongid=48内定此组的id能访谈分享文件
######################################
[[email protected]
htdocs]# service nfs start #开启nfs服务
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Stopping RPC idmapd: [ OK ]
Starting RPC idmapd: [ OK ]
Starting NFS daemon: [ OK ]
[[email protected]
htdocs]#
web:顾客端的布置
1)、安装httpd的软件
. 代码如下:
[[email protected]
/]# yum -y install httpd
2)、设置web的相干安排,使得web能够提供web服务
. 代码如下:

[[email protected]
/]# vim /etc/httpd/conf/httpd.conf
########################################
ServerName 172.16.22.3:80
#DocumentRoot “/var/www/html”
<VirtualHost *:80>
ServerName www.jie.com
DocumentRoot /website #存放网页文件的门道
</VirtualHost>
#######################################
[[email protected]
/]# mkdir /website
[[email protected]
/]# httpd -t
Syntax OK
[[email protected]
/]# service httpd start
Starting httpd: [ OK ]
[[email protected]
~]# cd /website/
[[email protected]
website]# ls #前段时间查看是绝非另外文件
[[email protected]
website]#
福寿年高共同:
1)服务器端设置apache客户对共享的公文有读写权限
. 代码如下:
[[email protected]
htdocs]#setfacl -R -m u:apache:rwx /web/
#安装apache顾客对当中保有文件有读写可举行权限
2)顾客端挂载服务器的分享文件,查看客户端是否业已一起服务器端的公文
. 代码如下:

[[email protected]
website]#cd /root
[[email protected]
~]# mount -t nfs 172.16.22.1:/web/htdocs /website/
#通过nfs挂载服务器端的文书
[[email protected]
/]#echo “172.16.22.1:/web/htdocs /website nfs defaults,_netdev 0 0”
>>/etc/fstab #福寿齐天开机挂载
[[email protected]
~]# cd /website/
[[email protected]
website]# ls #翻看文件已经一齐过来
index.html test.html test.php
[[email protected]
website]#
3)顾客端在分享的文件中新添文件,查看服务器端是不是同步文件
. 代码如下:

[[email protected]
~]# cd /website/
[[email protected]
website]# ls
index.html test.html test.php
[[email protected]
website]# touch website.html #在客户端创造此文件
[[email protected]
website]# ls
index.html test.html test.php website.html
[[email protected]
htdocs]# ls #劳务器端,能够查阅来着客户端上传的文件
index.html test.html test.php website.html
具有的数据实际上都封存到了nfs服务器,不论顾客访问哪台Web服务器,都要来nfs服务器获取数据,那样自然照成nfs服务器的属性收缩,况且顾客端对nfs服务器的正视性不小,若是nfs服务器down掉之后,客商端的web服务器就不能专门的工作了。(动态的这种数据,并且数据量相当大的数目,就不要用nfs服务器来促成数量分享了,一般适应于,静态页面和数目十分小的公文)
二、rsync +inotify完结web数据同步
ca88会员登录入口 2

rsync(remote sync)的特性:
能够镜像保存整个目录树和文件系统
能够协同增量同步数据,文件传输功能高,因而同步时间比不够长
能够维持原有文件的权柄、时间等质量
加密传输数据,保障了数码的安全性
帮忙无名传输
rsync也能落实同步,不过急需和谐手动的去一同数据,当数据量极度的频繁时,无疑是加大了运行职员的专门的学业,inotify是一种强大的、细粒度的、异步的文件系统事件监察和控制体制,inotify-tools工具的出现,消除了这种事业,安装inotify软件的主机缘监听服务器端的主机是还是不是数据和本机区别等,(因为在上传数据时,运转职员先上传到安装inotify主机上),不均等就用rsync命令直接把多少传输过去。客商端安装rsync软件是为了调用rsync的授命,安装inotify软件是监听和多少是还是不是发生改造,服务器端安装rsync软件时为了提供rsync服务。
rsync+web服务端的安排:
1)、安装相关软件
. 代码如下:
[[email protected]
~]# yum -y install rsync xinetd httpd
#rsync服务普通依据一流守护进度xinetd管理的不二法门来完成,因而供给事先安装rysnc和xinetd
2)、web的相关安顿,使得web可以提供劳务

. 代码如下:

[[email protected]
~]# vim /etc/httpd/conf/httpd.conf
########################################
ServerName 172.16.22.1:80
#DocumentRoot “/var/www/html”
<VirtualHost *:80>
ServerName www.jie.com
DocumentRoot /web/htdocs
</VirtualHost>
#######################################
[[email protected]
~]# mkdir -pv /web/htdocs
[[email protected]
~]# cd /web/htdocs #劳动器端,未有别的的网页文件
[[email protected]
~]# ls
[[email protected]
~]#
3)、rsync服务的有关配置
*****创立rsync的布局文件和密码文件************
touch /etc/rsyncd.conf(rsync的布署文件)
touch /etc/rsyncd.pwd(客户的密码文件)
chmod 600 /etc/rsyncd.pwd(权限要设置为600,否则不恐怕备份成功)
. 代码如下:

[[email protected]
~]# vim /etc/rsyncd.conf
############vim
/etc/rsyncd.conf########################################
uid = nobody #备份以什么样地位张开,客商ID
gid = nobody #备份以什么地点张开,组ID
use chroot = no #幽禁在源目录
max connections = 3 #最加纳Ake拉接数,0代表未有界定
strict modes = yes #是或不是检查口令文件的权杖
pid file = /var/run/rsyncd.pid #运作进程的pid文件
log file = /var/log/rsyncd.log #日记记录文件
[htdocs] #钦点认证的备份模块名
path = /web/htdocs #亟需备份的目录的路子
ignore errors = yes #不经意一些毫不相干的IO错误
read only = no #安装为no,即能够传至服务器的照料目录。
write only = no #设置为no,表示顾客端能够下载文件
hosts allow = 172.16.22.3 #能够接连rsync服务器的主机的IP地址
hosts deny = * #安装禁止连接rsync服务器的主机地址,*表示
拒绝全数除了hosts allow定义的
uid = root
gid = root
auth users = backuper #三番五次模块的顾客名
secrets file = /etc/rsyncd.pwd #三番五次模块客户名的密码文件存放路线
#####################################################################
[[email protected]
~]#vim /etc/rsyncd.pwd #客商的密码文件
#####################################################################
backuper:pwd123 #用户名:密码
#####################################################################
[[email protected]
~]# chmod 600 /etc/rsyncd.pwd #权限给600
[[email protected]
~]# chkconfig rsync on
[[email protected]
~]# chkconfig xinetd on
[[email protected]
~]# service xinetd start
Starting xinetd: [ OK ]
[[email protected]
~]# netstat -pant | grep 873
tcp 0 0 :::873 :::* LISTEN 19876/xinetd
rsync+inotify+web客商端的布局:
1)、inotify-tools软件的设置及安装
. 代码如下:

[[email protected]
~]#wget

#下载inotify-tools软件
[[email protected]
~]# ls
anaconda-ks.cfg install.log
inotify-tools-3.14.tar.gz install.log.syslog
[[email protected]
~]# tar xf inotify-tools-3.14.tar.gz #解压软件
[[email protected]
~]# cd inotify-tools-3.14
[[email protected]
inotify-tools-3.14]# ./configure –prefix=/usr/local/inotify && make
&& make install #编写翻译安装软件
[[email protected]
~]#cd /usr/local/inotify/
[[email protected]
inotify]# echo “PATH=/usr/local/inotify/bin:$PATH”
>>/etc/profile.d/inotify.sh #安装能与系统关系的path路线
[[email protected]
inotify]# source /etc/profile.d/inotify.sh
[[email protected]
inotify]# echo “/usr/local/inotify/lib”
>/etc/ld.so.conf.d/inotify.conf #安装系统能辨识软件的库文件
[[email protected]
inotify]# ldconfig -v | grep inotify
/usr/local/inotify/lib:
libinotifytools.so.0 -> libinotifytools.so.0.4.1
[[email protected]
inotify]# ln -sv /usr/local/inotify/include/ /usr/include/inotify
#链接头文件到系统能鉴其他路线下
`/usr/include/inotify’ -> `/usr/local/inotify/include/’
[[email protected]
inotify]#
2)、web的有关安插,使得web能够提供劳动
. 代码如下:

[[email protected]
/]# vim /etc/httpd/conf/httpd.conf
########################################
ServerName 172.16.22.3:80
#DocumentRoot “/var/www/html”
<VirtualHost *:80>
ServerName www.jie.com
DocumentRoot /website
</VirtualHost>
#######################################
[[email protected]
/]# mkdir /website
[[email protected]
/]# httpd -t
Syntax OK
[[email protected]
/]# service httpd start
Starting httpd: [ OK ]
[[email protected]
~]# cd /website/
[[email protected]
website]# ls
[[email protected]
website]#
[[email protected]
~]#
3)、配置能三回九转rsync的密码文件和传输数据的台本
. 代码如下:

[[email protected]
~]# vim /etc/rsyncd.pwd
#############################################
pwd123 #密码与rsync服务器的密码同样
###############################################
[[email protected]
~]# chmod 600 /etc/rsyncd.pwd
[[email protected]
~]# vim rsync.sh
#####################################################################
#!/bin/bash
host=172.16.22.1
src=/website
des=htdocs
inotifywait -mrq –timefmt ‘%d/%m/%y %H:%M’ –format ‘%T %w%f%e’ -e
modify,delete,create,attrib $src \
| while read files
do
/usr/bin/rsync -vzrtopg –progress –password-file=/etc/rsyncd.secrets
$src
[email protected]$host::$des
echo “${files} was rsynced” >>/tmp/rsync.log 2>&1
done
####################################################################
表明完结共同:
. 代码如下:

##1、先展开监察和控制的脚本(inotify主机上)
[[email protected]
~]# bash -x rsync.sh &
#不放在后台能够查看同步的详尽进度,生成遭受中,提出把此脚本放到后台实施,此脚本会监察和控制客商端数据是或不是方式生成,要是变化脚本就运维,数据不转移,脚本就能够等待着客商的输入
##2、在开八个极端,在此目录创设文件(inotify主机上)
[[email protected]
~]# cd /website/
[[email protected]
website]# touch index.html test.php testdb.php inotify.php
[[email protected]
website]# ls
index.html testdb.php test.php inotify.php
[[email protected]
website]#
##3、看服务器端,数据是还是不是早就一齐过去
[[email protected]
~]# cd /web/htdocs/
[[email protected]
htdocs]# ls
index.html testdb.php test.php inotify.php #多少已经被联合过来
[[email protected]
htdocs]#
rsync
+inotify这种能兑现多少的一块,可是当网络很辛劳,且文件变化比较频繁时,何况要求共同的rsync服务器端比相当多时,rsync+inotify确定是满意不断必要的,于是rsync+sersync这种更快更节约能源实现web数据同步能够弥补rsync+inotify带来的难感到继,rsync+inotify还大概有三个关键的瑕玷便是数码传输只是单向的,当启摄人心魄士由于“马虎”把数量直接传输rsync服务器端时,inotify主机是得不到rsync服务器端的数据,于是unison+inotify达成web数据双向同步,消除了rsync+inotify的这一顽疾。
三、rsync+sersync越来越快更节约财富达成web数据同步
ca88会员登录入口 3

sersync与inotify相比有以下优点:
sersync是行使c++编写,而且对linux系统文件系统发生的临时文件和再次的文书操作进行过滤,所以在整合rsync同步的时候,节省了运营时耗和网络能源。因而更加快。
sersync配置起来很轻巧,在那之中bin目录下一度有大约静态编写翻译的2进制文件,合作bin目录下的xml配置文件平昔行使即可。
sersync使用多线程举行共同,特别在联合比较大文件时,能够确认保证七个服务器实时保持同步状态。
sersync有失误管理机制,通过失利队列对出错的文本再次联合,若是照旧战败,则按设定期期长度对伙同退步的文书再一次联合。
sersync自带crontab功效,只需在xml配置文件中展开,就可以按您的渴求,隔一段时间全体一并一回。不需求再附加布署crontab作用。
rsync+web服务器端的布置:
1)、安装相关软件
. 代码如下:

[[email protected]
~]# yum -y install rsync xinetd httpd
#rsync服务普通依照一流守护进度xinetd管理的主意来兑现,因而必要事先安装rysnc和xinetd
2)、web的相干安插,使得web可以提供劳动
. 代码如下:

[[email protected]
~]# vim /etc/httpd/conf/httpd.conf
########################################
ServerName 172.16.22.1:80
#DocumentRoot “/var/www/html”
<VirtualHost *:80>
ServerName www.jie.com
DocumentRoot /web/htdocs
</VirtualHost>
#######################################
[[email protected]
~]# mkdir -pv /web/htdocs
[[email protected]
~]# cd /web/htdocs #劳务器端,未有任何的网页文件
[[email protected]
~]# ls
[[email protected]
~]#
3)、rsync服务的连带配置
. 代码如下:

###====此安排文件的解释,在rsync+inotify中曾经表明了=====####
[[email protected]
~]# vim /etc/rsyncd.conf
############vim
/etc/rsyncd.conf###############
uid = nobody
gid = nobody
use chroot = no
max connections = 3
strict modes = yes
pid file= /var/run/rsyncd.pid
log file= /var/log/rsyncd.log
[htdocs]
path = /web/htdocs
ignore errors = yes
readonly = no
write only = no
hosts allow = 172.16.22.3
hosts deny = *
list = false
uid = root
gid = root
auth users= backuper
secrets file= /etc/rsyncd.pwd
##############################################
[[email protected]
~]#vim /etc/rsyncd.pwd
backuper:pwd123
[[email protected]
~]# chmod 600 /etc/rsyncd.pwd
[[email protected]
~]# chkconfig rsync on
[[email protected]
~]# chkconfig xinetd on
[[email protected]
~]# service xinetd start
Starting xinetd: [ OK ]
[[email protected]
~]# netstat -pant | grep 873
tcp 0 0 :::873 :::* LISTEN 19876/xinetd
sersync+web顾客端的布局:
1)、先下载安装sersync软件,做始发设置
. 代码如下:

[[email protected]
~]#wget –no-check-certificate

[[email protected]
~]# ls
anaconda-ks.cfg install.log.syslog
install.log sersync2.5_64bit_binary_stable_final.tar.gz
mkdir /usr/local/sersync
[[email protected]
~]#mkdir -pv /usr/local/sersync/{conf,bin,log}
mkdir: created directory `/usr/local/sersync’
mkdir: created directory `/usr/local/sersync/conf’
mkdir: created directory `/usr/local/sersync/bin’
mkdir: created directory `/usr/local/sersync/log’
[[email protected]
~]# tar xf sersync2.5_64bit_binary_stable_final.tar.gz
[[email protected]
~]# cd GNU-Linux-x86/
[[email protected]
GNU-Linux-x86]# ls
confxml.xml sersync2
[[email protected]
GNU-Linux-x86]# mv confxml.xml /usr/local/sersync/conf/
[[email protected]
GNU-Linux-x86]# mv sersync2 /usr/local/sersync/bin/
[[email protected]
GNU-Linux-x86]# cd /usr/local/sersync/
[[email protected]
sersync]# echo “PATH=/usr/local/sersync/bin:$PATH”
>>/etc/profile.d/sersync.sh
[[email protected]
sersync]# source /etc/profile.d/sersync.sh
[[email protected]
sersync]# echo “pwd123” >/usr/local/sersync/sersync.pwd
[[email protected]
sersync]# chmod 600 /usr/local/sersync/sersync.pwd
2)、修改sersync的安插文件
. 代码如下:

[[email protected]
sersync]# vim /usr/local/sersync/conf/confxml.xml
#########################################################################<?xml
version=”1.0″ encoding=”ISO-8859-1″?>
<head version=”2.5″>
#设置本地的ip地址和监听的端口
<host hostip=”172.16.22.3″ port=”8008″></host>
#debug形式是还是不是开启
<debug start=”false”/>
#xfs文件系统是不是张开
<fileSystem xfs=”false”/>
#三头时,是或不是扶助正则说明式,私下认可关闭
<filter start=”false”>
<exclude expression=”(.*)\.svn”></exclude>
<exclude expression=”(.*)\.gz”></exclude>
<exclude expression=”^info/*”></exclude>
<exclude expression=”^static/*”></exclude>
</filter>
# 设置要监督的平地风波
<inotify>
<delete start=”true”/>
<createFolder start=”true”/>
<createFile start=”false”/>
<closeWrite start=”true”/>
<moveFrom start=”true”/>
<moveTo start=”true”/>
<attrib start=”false”/>
<modify start=”false”/>
</inotify>
#协助举行的设置
<sersync>
#一道的门路,本地的目录
<localpath watch=”/website”>
#rsync服务器的ip地址和rsync配置文件之中定义的模块
<remote ip=”172.16.22.1″ name=”htdocs”/>
#<!– –>括起来表示注释
<!–<remote ip=”192.168.8.39″ name=”tongbu”/>–>
<!–<remote ip=”192.168.8.40″ name=”tongbu”/>–>
</localpath>
<rsync>
#rsync指令参数
<commonParams params=”-artuz”/>
#rsync同步验证设置的内容,user钦赐客商名,password钦点寄存密码的文件路线
<auth start=”true” users=”backuper”
passwordfile=”/usr/local/sersync/sersync.pwd”/>
#设置rsync远程服务端口
<userDefinedPort start=”false” port=”874″/><!– port=874
–>
#设置超时时间
<timeout start=”true” time=”100″/><!– timeout=100 –>
#设置ssh加密传输格局,默许关闭
<ssh start=”false”/>
</rsync>
#安装sersync传输败北日志脚本路线
<failLog path=”/tmp/rsync_fail_log.sh”
timeToExecute=”60″/><!–default every 60mins execute once–>
#安装rsync+crontab定期传输,暗许关闭
<crontab start=”false” schedule=”600″><!–600mins–>
<crontabfilter start=”false”>
<exclude expression=”*.php”></exclude>
<exclude expression=\’#\'” /*”></exclude>
</crontabfilter>
</crontab>
#安装sersync传输后调用name钦点的插件脚本,暗中同意关闭
<plugin start=”false” name=”command”/>
</sersync>
#插件脚本榜样
<plugin name=”command”>
<param prefix=”/bin/sh” suffix=”” ignoreError=”true”/>
<!–prefix /opt/tongbu/mmm.sh suffix–>
<filter start=”false”>
<include expression=”(.*)\.php”/>
<include expression=”(.*)\.sh”/>
</filter>
</plugin>
</head>
#######################################################################
表达达成同台:

. 代码如下:

###sersync客户端的,开启联合机制,举办督察,然后创制文件
[[email protected]
website]# sersync2 -r -d &
[[email protected]
~]# cd /website/
[[email protected]
website]# touch index.html testdb.php test.html test.php
###rsync服务器端,查看能够来着sersync顾客端的联合文件
[[email protected]
~]# cd /web/htdocs/
[[email protected]
htdocs]# ls
index.html testdb.php test.html test.php
[[email protected]
htdocs]#
四、unison+inotify达成web数据双向同步
ca88会员登录入口 4

Unison是一款跨平台的文本同步对象,不独有协理本地对地面同步,也援救经由进度SSH、TiguanSH和Socket等搜聚和平会谈拓宽协同。
Unison支撑双向同步操纵,你不只能够从A同步到B,也能够从B同步到A,那么些都不必要格外的设定。
1)、四个服务器都编写翻译安装那多个源码包:(在此作者只写一台服务器的编写翻译安装进程)
. 代码如下:

[[email protected]
~]#wget
ftp://distro.ibiblio.org/slitaz/sources/packages-2.0/o/ocaml-3.10.2.tar.gz
[[email protected]~]#wget

[[email protected]~]#wget

[[email protected]
~]# ls
anaconda-ks.cfg install.log ocaml-3.10.2.tar.gz
inotify-tools-3.14.tar.gz install.log.syslog unison-2.32.52.tar.gz
[[email protected]
~]# tar xf inotify-tools-3.14.tar.gz
[[email protected]
~]# tar xf ocaml-3.10.2.tar.gz
[[email protected]
~]# tar xf unison-2.32.52.tar.gz
##编译安装inotify
[[email protected]
~]# cd inotify-tools-3.14
[[email protected]
inotify-tools-3.14]# ./configure –prefix=/usr/local/inotify && make
&& make install
[[email protected]
inotify-tools-3.14]# cd /usr/local/inotify/
##修改PATH情形变量
[[email protected]
inotify]# echo “PATH=/usr/local/inotify/bin:$PATH”
>/etc/profile.d/inotify.sh
[[email protected]
inotify]# source /etc/profile.d/inotify.sh
##加多库文件到系统识别的门道
[[email protected]
inotify]# echo “/usr/local/inotify/lib”
>/etc/ld.so.conf.d/inotify.conf
[[email protected]
inotify]# ldconfig -v | grep inotify
/usr/local/inotify/lib:
libinotifytools.so.0 -> libinotifytools.so.0.4.1
##链接库文件到系统识别的不二秘诀
[[email protected]
inotify]# ln -sv /usr/local/inotify/include/ /usr/include/inotify
`/usr/include/inotify’ -> `/usr/local/inotify/include/’
##编写翻译安装ocaml,unison重视于ocaml
[[email protected]
inotify]#cd /root/ocaml-3.10.2
[[email protected]
ocaml-3.10.2]#./configure
[[email protected]
ocaml-3.10.2]#make world opt
[[email protected]
ocaml-3.10.2]#make install
##编写翻译安装unison
[[email protected]
ocaml-3.10.2]# cd /root/unison-2.32.52
##安装正视性包
[[email protected]
unison-2.32.52]#yum -y install ctags-etags
[[email protected]
unison-2.32.52]# make UISTYLE=text
##make install会提醒错误,此错误正是要你cp unison
/usr/local/bin,复制就能够
[[email protected]
unison-2.32.52]# make install
[[email protected]
unison-2.32.52]# cp unison /usr/local/bin
2)、服务器A生成的公钥传到服务器B上:
. 代码如下:

##把服务器A生成的公钥传到服务器B上####
[[email protected]
~]# ssh-keygen -t rsa #生成ssh的密钥对
[[email protected]
~]# scp ~/.ssh/id_rsa.pub 172.16.22.3:/root
#变化的密钥在家目录的ssh文件中,ssh文件为掩饰文件,通过scp复制到服务器B上
[[email protected]
~]# mv id_rsa.pub .ssh/authorized_keys
#在服务器B上把服务器A传来的公钥文件改名并寄放到ssh目录下
[[email protected]
~]# chmod 600 .ssh/authorized_keys #给公钥文件改权限为600
[[email protected]
~]# service sshd restart #重启sshd服务
Stopping sshd: [ OK ]
Starting sshd: [ OK ]
[[email protected]
~]#
3)、服务器B生成的公钥传到服务器A上:
. 代码如下:

##把服务器B生成的公钥传到服务器A上####
[[email protected]
~]# ssh-keygen -t rsa #生成ssh的密钥对
[[email protected]
~]# scp ~/.ssh/id_rsa.pub 172.16.22.1:/root
#扭转的密钥在家目录的ssh文件中,ssh文件为隐藏文件,通过scp复制到服务器B上
[[email protected]
~]# mv id_rsa.pub .ssh/authorized_keys
#在服务器A上把劳务器B传来的公钥文件改名并贮存到ssh目录下
[[email protected]
~]# chmod 600 .ssh/authorized_keys #给公钥文件改权限为600
[[email protected]
~]# service sshd restart #重启sshd服务
Stopping sshd: [ OK ]
Starting sshd: [ OK ]
[[email protected]
~]#
4)、分别搭建web服务,服务器A的网页文件存放路线为/web/htdocs,服务器B的网页寄存路线为/website
. 代码如下:

##服务器A搭建web的配置
[[email protected]
/]# vim /etc/httpd/conf/httpd.conf
########################################
ServerName 172.16.22.1:80
#DocumentRoot “/var/www/html”
<VirtualHost *:80>
ServerName www.jie.com
DocumentRoot /web/htdocs
</VirtualHost>
#######################################
[[email protected]
~]# mkdir -pv /web/htdocs
[[email protected]
~]# cd /web/htdocs/
[[email protected]
htdocs]# ls
[[email protected]
htdocs]#
##服务器B搭建web的配置
[[email protected]
/]# vim /etc/httpd/conf/httpd.conf
########################################
ServerName 172.16.22.3:80
#DocumentRoot “/var/www/html”
<VirtualHost *:80>
ServerName www.jie.com
DocumentRoot /website
</VirtualHost>
#######################################
[[email protected]
/]# mkdir /website
[[email protected]
/]# httpd -t
Syntax OK
[[email protected]
/]# service httpd start
Starting httpd: [ OK ]
[[email protected]
~]# cd /website/
[[email protected]
website]# ls
[[email protected]
website]#
5)、编unison同步的本子实行测量试验
. 代码如下:

##服务器A的脚本
[[email protected]
~]# vim serA.sh
######################################################################
#/bin/bash
ipB=”172.16.22.3″
srcA=”/web/htdocs”
dstB=”/website”
/usr/local/inotify/bin/inotifywait -mrq -e create,delete,modify,move
$srcA | while read line; do
/usr/local/bin/unison -batch $srcA ssh://$ipB/$dstB
echo -n “$line ” >> /var/log/inotify.log
echo `date | cut -d ” ” -f1-4` >> /var/log/inotify.log
done
#####################################################################
##服务器B的脚本
[[email protected]
~]# vim serB.sh
#####################################################################
#/bin/bash
ipA=”172.16.22.1″
srcB=”/website”
dstA=”/web/htdocs”
/usr/local/inotify/bin/inotifywait -mrq -e create,delete,modify,move
$srcB | while read line; do
/usr/local/bin/unison -batch $srcB ssh://$ipA/$dstA
echo -n “$line ” >> /var/log/inotify.log
echo `date | cut -d ” ” -f1-4` >> /var/log/inotify.log
done
#####################################################################
##服务器A的测试
[[email protected]
~]# sh -x serA.sh #先运营unison同步脚本,查看进度
[[email protected]
~]# cd /web/htdocs/
[[email protected]
htdocs]# touch serA.txt SerA.html SerA.php #下一场创制文件
[[email protected]
htdocs]# ls
SerA.html SerA.php serA.txt SerB.html SerB.php SerB.txt
##服务器B的测试
[[email protected]
~]# sh -x serB.sh
[[email protected]
~]# cd /website/
[[email protected]
website]# touch SerB.txt SerB.html SerB.php
[[email protected]
website]# ls
SerA.html SerA.php serA.txt SerB.html SerB.php SerB.txt
###=====能够把脚本设置开机自启,放到rc.local文件中,且放在后台运营

======================================= 1、nfs完毕web数据共享 2、rsync
+inotify完毕web数据同步 3、rsync+sersync越来越快更省去财富…

ssh  远程登陆

: scp 命令是 SSH
中最利于实用的命令了,scp正是secure
copy,是用来拓宽长途文件拷贝的。数据传输使用 ssh,並且和ssh
使用一样的表达方…

sftp    文件分享 类似ftp  ssh  secure file transfer client

scp    文件分享 类似cp

  www.2cto.com  

ssh配置文件

/etc/ssh/sshd_config

#PermitRootLogin yes    改成no 禁止root直接登陆

#Port 22    改造ssh的暗许端口号   要张开注释

重启ssh服务

service sshd restart

 

ssh

登录  ssh
 [email protected]
 然后输入密码就好了

-2  ssh2合同   提议用ssh2 安全性会越来越好  ssh -2 

-p  钦赐非规范端口   ssh -2 -p2222
[email protected]

  www.2cto.com  

sftp

也足以直接在命令行用sftp连接那台主机  sftp  
[email protected]

 

scp  拷贝远程文件 加密传输

scp  当守田件 顾客名@远程主机地址:远程主机目录 scp /etc/inittab
[email protected]:/gwyy

scp -r 本地目录 顾客名@远程主机地址:远程主机目录  -r拷贝文件

从远程主机拷贝文件到当地

scp   客商名@远程主机地址:远程主机文件  当地目录

scp -r  客户名@远程主机地址:远程目录    本地目录

常用选项

-p  保持文件属性  举例时间属性

-r  复制目录 

-P  钦定端口号

 

事例 能够用crontab + scp做长途备份

crontab -e 

0 2 * * 0 /usr/bin/scp -r
[email protected]:/web
 /backup/web  周二到星期天做增量备份

 

 

生成  ssh密钥  让2台主机没有须要密码 

第一台主机 root 生成公钥 拷贝到 第二台主机 gwyy 家目录里面 那样
第一台主机root连接第二台主机gwyy没有须要密码

ssh-keygen -t rsa 生成公钥

scp /root/.ssh/id_rsa.pub
[email protected]
/home/gwyy  把公钥拷贝到另一台主机

 

第二台主机 账号登入 手动创立 .ssh目录  mkdir .ssh  是东躲新疆的 要用 ls -a
查看

cat id_rsa.pub >> .ssh/authorized_keys  然后把复制来的文本
改名拷贝到.ssh目录

chmod   700 .ssh   退换权限 那一个目录   唯有普通客户有权力

chmod 600    .ssh/authorized_keys  权限必须是600 读写权限 

 

rsync 应用  

便利的增量备份  可以使用ssh加密通道 能够镜像保存整个目录和文件系统
 保持文件的权限制时间间软连接 等等 传输功效高

 

启用服务

编辑  /etc/xinetd.d/rsync

安装 disable = on  启用  暗中同意不启用

重启xinetd进程  service xinetd restart 

事例  周1到周6做一遍备份 

crontab -e 

0 2 * * 1-6 /usr/bin/rsync -arHz –delete
[email protected]:/web
 /backup  把另一台主机的web目录拷贝到本机的back上面

 

-a  保持文件属性

-r   子目录递归管理

-H 保持文件硬链接

-z  备份文件传输时候压缩管理

–progress 在传输时候显得传输进度

–delete  删除目标备份未有的文件

-e ssh  使用ssh加密隧道传输

 

ssh 远程登陆 sftp 文件共享类似ftp ssh secure file transfer client scp 文件共享 类似cp www.2cto.com
ssh配置文件 /etc/ssh/sshd_config #Permi…

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注