++++++++++++++++++++
日志分析工具AWStats
++++++++++++++++++++
http://www.oschina.net/project
http://www.oschina.net/project/tag/147/log-analyzer --统计日志分析工具
http://www.awstats.org/ --官方网站
http://www.nltechno.com/awstats/awstats.pl?config=destailleur.fr --官方页面的统计
AWStats 是一个免费的强大而有个性的工具,带来先进的网络,流量,FTP或邮件服务器统计图. 本日志分析器作为CGI或从命令行在数个图形网页中显示你日志中包含的所有可能信息. 它利用一部分档案资料就能经常很快地处理大量日志档案, 它能分析日志文件来自从各大服务器工具 ,如 Apache日志档案 s (NCSA combined/XLF/ELF log format or common/CLF log format), WebStar, IIS (W3C的日志格式)及许多其他网站,Proxy(代理服务器)、Wap、流量服务器、邮件服务器和一些 FTP服务器
统计( web|ftp|mail|流媒体)
它可以统计您站点的如下信息:
一:访问量,访问次数,页面浏览量,点击数,数据流量等
二:精确到每月、每日、每小时的数据
三:访问者国家
四:访问者IP
五:Robots/Spiders的统计
六:访客持续时间
七:对不同Files type 的统计信息
八:Pages-URL的统计
九:访客操作系统浏览器等信息
十:其它信息(搜索关键字等等)
思路
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1. 通过perl工具生成web日志分析模板文件
[*] cd /usr/local/awstats && ./tools/awstats_configure.pl
perl awstats_configure.pl
2. 生成的模板文件
[*] /etc/awstats/awstats.www.uplooking.com.conf
/etc/awstats/awstats.mysite.conf
3. 通过分析日志工具,将分析的结果存放在Datadir
[*] /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.uplooking.com
perl awstats.pl config=mysite output staticlinks > awstats.mysite.html
--自动分析|通过计划任务实现自动分析
4 通过cgi方式访问页面
[*] http://localhost/awstats/awstats.pl?config=www.uplooking.com
http://www.myserver.mydomain/awstats/awstats.pl?config=mysite
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
部署
1 统计apache的旧的访问日志
2 统计apache的实时的访问日志
3 统计ftp的旧日志
--扩展--统计ftp的实时的访问日志 统计邮件日志
1> 下载软件
[root@node1 ~]# lftp 192.168.0.254
lftp 192.168.0.254:~> cd notes/weekend/project/software/
lftp 192.168.0.254:/notes/weekend/project/software> mirror awstats/
lftp 192.168.0.254:/notes/weekend/project/software> exit
2> 解压到指定目录/usr/local
[root@node1 ~]# tar xf /root/awstats/awstats-6.9.tar.gz -C /usr/local/
[root@node1 ~]# mv /usr/local/awstats-6.9/ /usr/local/awstats
3> 通过perl awstats_configure.pl 脚本 生成配置文件
进入到awstats家目录 运行脚本
[root@node1 ~]# cd /usr/local/awstats/
[root@node1 awstats]# perl tools/awstats_configure.pl
----- AWStats awstats_configure 1.0 (build 1.8) (c) Laurent Destailleur -----
This tool will help you to configure AWStats to analyze statistics for
one web server. You can try to use it to let it do all that is possible
in AWStats setup, however following the step by step manual setup
documentation (docs/index.html) is often a better idea. Above all if:
- You are not an administrator user,
- You want to analyze downloaded log files without web server,
- You want to analyze mail or ftp log files instead of web log files,
- You need to analyze load balanced servers log files,
- You want to 'understand' all possible ways to use AWStats...
Read the AWStats documentation (docs/index.html)
-----> Running OS detected: Linux, BSD or Unix --选项linux系统
-----> Check for web server install --安装webserver(apache)
Enter full config file path of your Web server.
Example: /etc/httpd/httpd.conf
Example: /usr/local/apache2/conf/httpd.conf
Example: c:\Program files\apache group\apache\conf\httpd.conf
Config file path ('none' to skip web server setup):
> /etc/httpd/conf/httpd.conf --指定apache的主配置文件
-----> Check and complete web server config file '/etc/httpd/conf/httpd.conf' --检测httpd配置文件是否加载参数
Add 'Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"'
Add 'Alias /awstatscss "/usr/local/awstats/wwwroot/css/"'
Add 'Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"'
Add 'ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"'
Add '<Directory>' directive
AWStats directives added to Apache config file.
-----> Update model config file '/usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf' --更新模板
File awstats.model.conf updated.
-----> Need to create a new config file ? --新建一个新的配置文件
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y
-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name:
> www.abc.com --站点的名称
-----> Define config file path --新建的配置文件存放路径
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):
> --回车
-----> Create config file '/etc/awstats/awstats.www.abc.com.conf' ---生成统计webserver的配置文件
Config file /etc/awstats/awstats.www.abc.com.conf created.
-----> Restart Web server with '/sbin/service httpd restart' --重启apache
Stopping httpd: [FAILED]
Starting httpd: [ OK ]
-----> Add update process inside a scheduler
Sorry, configure.pl does not support automatic add to cron yet.
You can do it manually by adding the following command to your cron:
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.abc.com
Or if you have several config files and prefer having only one command:
/usr/local/awstats/tools/awstats_updateall.pl now
---不支持自动分析日志
--手动通过命令来分析日志 /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.abc.com
A SIMPLE config file has been created: /etc/awstats/awstats.www.abc.com.conf
You should have a look inside to check and change manually main parameters.
You can then manually update your statistics for 'www.abc.com' with command:
> perl awstats.pl -update -config=www.abc.com
You can also read your statistics for 'www.abc.com' with URL:
> http://localhost/awstats/awstats.pl?config=www.abc.com
Press ENTER to finish...
--一个简单的模板生成/etc/awstats/awstats.www.abc.com.conf
--手动分析日志 perl awstats.pl -update -config=www.abc.com
--如何访问数据 http://localhost/awstats/awstats.pl?config=www.abc.com
3> 设置配置文件参数
[root@node1 awstats]# vim /etc/awstats/awstats.www.abc.com.conf
LogFile="/root/awstats/access_log_new" --定义旧的日志旧文件
LogType=W --统计web的访问日志
LogFormat=1 --日志格式 Examples for Apache combined logs
LogSeparator=" " --日志文件中的分隔符
SiteDomain="www.abc.com" --站点名称
HostAliases="abc.com www.abc.com 127.0.0.1 localhost" --访问主机的别名
DNSLookup=2 ---DNS缓存在/etc/hosts
DirData="/var/lib/awstats" --分析完日志之后存放的目录
4> 新建存放分析结果的日志目录
[root@node1 awstats]# mkdir -p /var/lib/awstats
5> 使用脚本分析日志
[root@node1 awstats]# /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.abc.com
[root@node1 awstats]# ls /var/lib/awstats/
awstats072013.www.abc.com.txt awstats092013.www.abc.com.txt awstats112013.www.abc.com.txt
awstats082013.www.abc.com.txt awstats102013.www.abc.com.txt
6> 访问
[root@node1 awstats]# echo "192.168.0.1 www.abc.com" >> /etc/hosts
测试机
[root@i pub]# echo "192.168.0.1 www.abc.com" >> /etc/hosts
http://www.abc.com/awstats/awstats.pl?config=www.abc.com
++++++++ 2 统计apache的实时的访问日志+++++++++++
1>
定义apache的虚拟主机,将日志格式定义为: combined
[root@node1 ~]# vim /etc/httpd/conf.d/www.bcd.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html
ServerName www.bcd.com
ErrorLog logs/bcd.com-error_log
CustomLog logs/bcd.com-access_log combined
</VirtualHost>
[root@node1 ~]# service httpd restart
[root@node1 ~]# echo "Test Awstats" > /var/www/html/index.html
2> 定义awstats统计日志的配置文件
[root@node1 ~]# cp /etc/awstats/awstats.www.abc.com.conf /etc/awstats/awstats.www.bcd.com.conf
[root@node1 ~]# vim /etc/awstats/awstats.www.bcd.com.conf
LogFile="/var/log/httpd/bcd.com-access_log"
LogType=W
LogFormat=1
LogSeparator=" "
SiteDomain="www.bcd.com"
HostAliases="bcd.com www.bcd.com 127.0.0.1 localhost"
DNSLookup=2
DirData="/var/lib/awstats/httpd-new"
3> 新建分析结果的数据目录
[root@node1 ~]# mkdir -p /var/lib/awstats/httpd-new
4> 手动分析日志
[root@node1 ~]# /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.bcd.com
5> 定义计划任务 每隔1分钟统计一次
[root@node1 ~]# crontab -eu root
* * * * * /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.bcd.com
6> 模拟数据
[root@node1 ~]# echo "192.168.0.1 www.bcd.com" >> /etc/hosts
[root@i ~]# while true; do elinks -dump http://www.bcd.com &> /dev/null; sleep 1s; done
7> 访问数据
http://www.bcd.com/awstats/awstats.pl?config=www.bcd.com
+++++++++++++++ 3 统计ftp的旧日志+++++++++++++++++++++
--根据官方手册 定义ftp的配置文件
FAQ and Troubleshooting
|FAQCOM090 Setup for FTP server log files (proftpd, vsftpd, ...).
|With vsFTPd, or any FTP server that log with xferlog format:
1> Check your server log file format:
--官方的日志格式
Wed Jan 01 19:29:35 2001 1 192.168.1.1 102 /home/file1.txt b _ o r username ftp 0 * c
--本机旧的ftp日志
[root@node1 ~]# head -1 /root/awstats/xferlog.new
Sun Jul 7 15:27:26 2013 1 192.168.0.23 4069 /pub/rhel6/dvd/repodata/repomd.xml b _ o a [email protected] ftp 0 * c
结论:日志一致
2> Then setup AWStats to analyze the FTP log file:
[root@node1 ~]# vim /etc/awstats/awstats.ftp.abc.com.conf
LogFile="/root/awstats/xferlog.new"
LogType=F
LogFormat="%time3 %other %host %bytesd %url %other %other %method %other %logname %other %code %other %other"
LogSeparator="\s"
SiteDomain="ftp.abc.com"
DNSLookup=2
DirData="/var/lib/awstats/vsftpd-old"
NotPageList=""
LevelForBrowsersDetection=0
LevelForOSDetection=0
LevelForRefererAnalyze=0
LevelForRobotsDetection=0
LevelForWormsDetection=0
LevelForSearchEnginesDetection=0
ShowLinksOnUrl=0
ShowMenu=1
ShowSummary=UVHB
ShowMonthStats=UVHB
ShowDaysOfMonthStats=HB
ShowDaysOfWeekStats=HB
ShowHoursStats=HB
ShowDomainsStats=HB
ShowHostsStats=HBL
ShowAuthenticatedUsers=HBL
ShowRobotsStats=0
ShowEMailSenders=0
ShowEMailReceivers=0
ShowSessionsStats=1
ShowPagesStats=PBEX
ShowFileTypesStats=HB
ShowFileSizesStats=0
ShowBrowsersStats=0
ShowOSStats=0
ShowOriginStats=0
ShowKeyphrasesStats=0
ShowKeywordsStats=0
ShowMiscStats=0
ShowHTTPErrorsStats=0
ShowSMTPErrorsStats=0
3> 新建分析结果的数据目录
[root@node1 ~]# mkdir -p /var/lib/awstats/vsftpd-old
4> 手动分析日志
[root@node1 ~]# /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=ftp.abc.com
5> 访问
echo "192.168.0.1 ftp.abc.com" >> /etc/hosts
http://ftp.abc.com/awstats/awstats.pl?config=ftp.abc.com
练习 统计ftp的实时日志<上传与下载的日志>
xferlog.log
scp做不到保留文件属性,无法只同步差异文件,是一个覆盖行操作
rsync作用:
1、同步文件(只同步有差异的文件列表)
2、异地备份
3、触发型的更新:sersync+rsync
用于 rsync 在远程多台主机间作文件同步 (走的是ssh通道,或者走自己的daemon通道)
server1<---------->server2
从server1同步一个文件列表(10个文件)至server2
rsync同步文件的原理:
1、在server1上扫描10个文件,并且得到一个md5/sha1检验值列表
2、在远程机器server2上,也扫描对应列表,到这步我们就有了两个列表(检验)
3、作为同步的客户去对比这两个列表,如果有差异的文件是需要同步,如果无差异表示源目录的文件是一致,所以不需要同步
最常见的包括两种服务实现方式:
server1(rsync+ssh)<-----ssh----->server2(sshd)
server1(rsync)<------------rsync--->server2(rsyncd)
1、基于远程shell 的程序,如OpenSSH,加密通道(慢),这是我们用得最多的文件同步方式,因为方便且安全
2、rsync 程序自身的“daemon”服务器模式,明文通道(快)。(客户端与服务端共同体的软件)
ssh:
192.168.0.15<-->192.168.0.254(SSHD)
rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
# rsync -avz [email protected]:/var/www/html/ /tmp/
daemon
192.168.0.15<-->192.168.0.254(rsyncd)
rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST
# rsync -avz [email protected]::webroot /tmp/ 两个冒号
# rsync -avz rsync://[email protected]/webroot /tmp/
sync是一个客户端/服务器同体一个软件:
# rsync --help--客户端模式
# rsync --daemon --help--服务器模式
以下列出rsync作为客户端时几个较常用的命令选项及其含义:
-a 使用归档(archive)模式,保留文件原有的权限、属性、属主等信息,等同于使用“-rlptgoD”等多个选项的组合
-l 符号(软)连接文件仍然复制为符号连接
-H 保留硬连接文件
-r 递归模式,包含目录及子目录中所有文件
-v 显示同步过程的详细(verbose)信息
-z 在传输文件时进行压缩(gzip compress)
-o 保留文件的属主标记(仅超级用户使用)
-g 保留文件的属组标记(仅超级用户使用)
-t 保留文件的时间标记
-p 保留文件的权限标记
-D 保留设备文件及其他特殊文件
-R 保留原来绝对路径
--delete
1)--delete在rsync daemon是一定能够成功的,而SSH通道不一定成功
2)作用:删除发送端没有而源端有的,保证接收端跟发送端文件是一致的
--checksum 根据校验和来决定是否跳过文件(而不是根据文件大小、修改时间)
ssh通道
[root@node1 hugo]# rsync -avzR /hugo/ 192.168.0.2:/ ---绝对路径
[root@node1 hugo]# rsync -avz /hugo/file1 192.168.0.2:/hugo/ --相对路径
实例 daemon通道
rsync-server(192.168.0.1) ----rsync-c1(192.168.0.2)
[root@node1 ~]# man rsync --客户端参数
[root@node1 ~]# man 5 rsyncd.conf --服务端参数
1 定义主配置文件
--新建共享目录
[root@node1 ~]# mkdir /webserver
[root@node1 ~]# chown nobody.nobody /webserver/
[root@node1 ~]# cp /etc/*.conf /webserver/
[root@node1 ~]# vim /etc/rsyncd.conf
uid=nobody --以匿名用户身份
gid=nobody
use chroot=yes --禁锢家目录
address=192.168.0.1 --监听本机网卡
port 873 --端口号
log file=/var/log/rsyncd.log --日志
pid file=/var/run/rsyncd.pid --pid文件
hosts allow=192.168.0.0/24 --允许那个网段
[webdata] --共享名
path=/webserver --真实共享目录
comment=web root share with rsync ---描述
read only=no --可读写
dont compress=*.gz *.bz2 *.tgz *.rar *.zip --不压缩那些文件
auth users=user01 user02 --rsync的用户
secrets file=/etc/rsyncd_user.db --存放张号与密码
2 设置帐号与密码
[root@node1 ~]# vim /etc/rsyncd_user.db
user01:123
user02:456
[root@node1 ~]# chmod 600 /etc/rsyncd_user.db
3.启动rsync(任选其中一种):
第一种办法(依赖方式):
[root@node1 ~]# yum -y install xinetd
[root@node1 ~]# chkconfig rsync on
[root@node1 ~]# chkconfig xinetd on
[root@node1 ~]# service xinetd start
[root@node1 ~]# netstat -tnlp |grep :873
[root@node1 ~]# service xinetd stop
第二种方法(独立方式):
[root@node1 ~]# rsync --daemon
[root@node1 ~]# netstat -tnlp |grep :873
tcp 0 0 192.168.0.1:873 0.0.0.0:* LISTEN 7535/rsync
[root@node1 ~]# echo "rsync --daemon" >> /etc/rc.local
4 测试
rsync [OPTION]... [USER@]HOST::SRC [DEST]
[root@node2 ~]# rsync -avzR [email protected]::webdata /tmp/
[root@node2 ~]# mkdir /webserver
[root@node2 ~]# rsync --delete -avzR [email protected]::webdata /webserver/
rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
[root@node2 ~]# rsync -avzR rsync://[email protected]/webdata /var/tmp/
免密码输入
客户端新建密码文本
[root@node2 ~]# vim ~/.rsync_passwd
123
[root@node2 ~]# chmod 600 /root/.rsync_passwd
[root@node2 webserver]# rsync --delete -avzR --password-file=/root/.rsync_passwd [email protected]::webdata /webserver/
====================================================================================================
使用sersync整合rsync,实现WEB页面同步更新,亦可做数据备份之用.
--> webser1[webroot]192.168.0.1
/
sersync+rsync---> webser2[webroot]192.168.0.2
0.254(/webroot) \
--> webser3[webroot]192.168.0.3
原理:
通过Linux内核的inotify 机制,根据源目录的变化情况,安排触发更新式的rsync同步任务
以上拓补图中sersync就是源目录服务器,所有对网页修改的更新只需要在源目录服务器上做修改即可更新至三对WEB_SERVE上
http://blog.chinaunix.net/uid-20639775-id-3011124.html --<关于sersync master ---- 从rsyncd >
1> webser1 (192.168.0.1) 启动rsyncd服务
1 新建共享目录
[root@node1 ~]# mkdir /webroot
[root@node1 ~]# chown nobody. -R /webroot/
2 定义配置文件
[root@node1 ~]# vim /etc/rsyncd.conf
uid=nobody
gid=nobody
use chroot=yes
port 873
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
hosts allow=192.168.0.0/24
[webdata]
path=/webroot
comment=web root share with rsync
read only=no
dont compress=*.gz *.bz2 *.tgz *.rar *.zip
auth users=user01 user02
secrets file=/etc/rsyncd_user.db
3 定义帐号与密码
[root@node1 ~]# cat /etc/rsyncd_user.db
user01:123
user02:456
4 以独立的进程方式启动
[root@node1 ~]# pkill -9 rsync
[root@node1 ~]# rm -fr /var/run/rsyncd.pid
[root@node1 ~]# rsync --daemon
[root@node1 ~]# echo "rsync --daemon" >> /etc/rc.local
将配置好rsync服务端同步到其它服务器
[root@node1 ~]# rsync -avz /etc/rsyncd.conf 192.168.0.2:/etc/
[root@node1 ~]# rsync -avz /etc/rsyncd_user.db 192.168.0.2:/etc/
[root@node1 ~]# rsync -avzR /webroot/ 192.168.0.2:/
[root@node1 ~]# rsync -avz /etc/rsyncd.conf 192.168.0.3:/etc/
[root@node1 ~]# rsync -avz /etc/rsyncd_user.db 192.168.0.3:/etc/
[root@node1 ~]# rsync -avzR /webroot/ 192.168.0.3:/
远程启动服务
[root@node1 ~]# ssh 192.168.0.2 rsync --daemon
[root@node1 ~]# ssh 192.168.0.3 rsync --daemon
-------------------------------------------------
测试
[root@i tmp]# rsync --delete -avz /tmp/ [email protected]::webdata
[root@i tmp]# rsync --delete -avz /tmp/ [email protected]::webdata
[root@i tmp]# rsync --delete -avz /tmp/ [email protected]::webdata
++++++++++++++配置sersync+++++++++++++++++++++++++++++
实现daemon通道
1> 下载软件与解压
[root@i ~]# wget ftp://192.168.0.254/notes/weekend/project/software/sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@i ~]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /opt/
[root@i ~]# mv /opt/GNU-Linux-x86/ /opt/sersync
2> 配置
[root@i ~]# vim /opt/sersync/confxml.xml
+++++++++++++++++++++
<sersync>
<localpath watch="/webroot">
<remote ip="192.168.0.1" name="webdata"/>
<remote ip="192.168.0.2" name="webdata"/>
<remote ip="192.168.0.3" name="webdata"/>
</localpath>
<rsync>
<commonParams params="-az"/>
<auth start="true" users="user01" passwordfile="/etc/rsync.pas"/>
<userDefinedPort start="false" port="874"/><!-- port=874 -->
+++++++++++++++++++++++++++
---解释说明
<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5">
<host hostip="localhost" port="8008"></host> ---端口
<debug start="false"/>
<fileSystem xfs="false"/> --开启xfs文件格式
<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="true"/>
<closeWrite start="true"/>
<moveFrom start="true"/>
<moveTo start="true"/>
<attrib start="true"/>
<modify start="true"/>
</inotify>
<sersync> --设置sersync
<localpath watch="/webroot">
<remote ip="192.168.0.1" name="webdata"/>
<remote ip="192.168.0.2" name="webdata"/>
<remote ip="192.168.0.3" name="webdata"/>
</localpath>
<rsync>
<commonParams params="-az"/>
<auth start="true" users="user01" passwordfile="/etc/rsync.pas"/>
<userDefinedPort start="false" port="874"/><!-- port=874 -->
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
</rsync>
<failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->
<crontab start="false" schedule="600"><!--600mins-->
<crontabfilter start="false">
<exclude expression="*.php"></exclude>
<exclude expression="info/*"></exclude>
</crontabfilter>
</crontab>
<plugin start="false" name="command"/>
</sersync>
3> 设置面密码同步
[root@i ~]# vim /etc/rsync.pas
123
[root@i ~]# chmod 600 /etc/rsync.pas
4> 启动servsync
[root@i ~]# cd /opt/sersync/
[root@i sersync]# ./sersync2 -d -r -n 20 -o confxml.xml
手动执行
[root@i webroot]# cd /webroot/
[root@i webroot]# rsync -az -R --delete ./ [email protected]::webdata --password-file=/etc/rsync.pas
测试
[root@i webroot]# cd /webroot/
--增加数据
[root@i webroot]# mkdir abc1
[root@i webroot]# mkdir abc2
[root@i webroot]# cp /etc/*.conf .
--删除内容
+++++实现ssh通道++++++++++++
1 生成密钥对与推送公钥
密钥对验证
[root@i ~]# ssh-keygen -t rsa
在客户端新建一个同步帐号rsync01
[root@node1 ~]# useradd rsync01
[root@node1 ~]# echo 123 | passwd --stdin rsync01
[root@node1 ~]# chown rsync01. -R /webroot/
[root@node2 ~]# useradd rsync01
[root@node2 ~]# echo 123 | passwd --stdin rsync01
[root@node2 ~]# chown rsync01. -R /webroot/
[root@node3 ~]# useradd rsync01
[root@node3 ~]# echo 123 | passwd --stdin rsync01
[root@node3 ~]# chown rsync01. -R /webroot/
推送公钥 给其它服务器
[root@i ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
[root@i ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
[root@i ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
2 更该配置文件
[root@i ~]# vim /opt/sersync/confxml.xml
<sersync>
<localpath watch="/webroot">
<remote ip="192.168.0.1" name="/webroot"/>
<remote ip="192.168.0.2" name="/webroot"/>
<remote ip="192.168.0.3" name="/webroot"/>
</localpath>
<rsync>
<commonParams params="-az"/>
<auth start="true" users="rsync01" passwordfile=""/>
<userDefinedPort start="true" port="22"/><!-- port=874 -->
<timeout start="true" time="100"/><!-- timeout=100 -->
<ssh start="true"/>
</rsync>
3 启动服务
[root@i ~]# pkill -9 servsync
[root@i ~]# cd /opt/sersync/
[root@i sersync]# ./sersync2 -d -r -n20 -o confxml.xml
4 测试 注意权限