文件同步linux配置

4.1 inotify-slave部署

这里就是部署rsync服务,rsync daemon工作模式。

4.1.1检查是否安装rsync

# rpm -aq rsync

rsync-3.0.6-9.el6.x86_64

4.1.2 新建rsync用户及模块目录并更改其用户组

# useradd rsync -s /sbin/nologin  -M  #添加rsync用户

# grep rsync /etc/passwd

rsync:x:502:502::/home/rsync:/sbin/nologin

# mkdir /backup   #创建rsync daemon工作模式的模块目录

# ll -d /backup/

drwxr-xr-x. 2 root root 4096 6月  15 17:33 /backup/

# chown rsync.rsync /backup/   #更改模块目录的用户组

# ll -d /backup/

drwxr-xr-x. 2 rsync rsync 4096 6月  15 17:33 /backup/

4.1.3 编写rsync daemon配置文件/etc/rsyncd.conf

# cat /etc/rsyncd.conf

##rsyncd.conf start##

#工作中指定用户(需要指定用户)

uid = rsync

gid = rsync

#相当于黑洞.出错定位

use chroot = no

#有多少个客户端同时传文件

max connections = 200

#超时时间

timeout = 300

#进程号文件

pid file = /var/run/rsyncd.pid

#日志文件

lock file = /var/run/rsync.lock

#日志文件

log file = /var/log/rsyncd.log

#模块开始

#这个模块对应的是推送目录

#模块名称随便起

[backup]

#需要同步的目录

path = /backup/

#表示出现错误忽略错误

ignore errors

#表示网络权限可写(本地控制真正可写)

read only = false

#这里设置IP或让不让同步

list = false

#指定允许的网段

hosts allow = 192.168.1.0/24

#拒绝链接的地址,一下表示没有拒绝的链接。

hosts deny = 0.0.0.0/32

#不要动的东西(默认情况)

#虚拟用户

auth users = rsync_backup

#虚拟用户的密码文件

secrets file = /etc/rsync.password

#配置文件的结尾

#rsync_config_______________end

4.1.4 配置虚拟用户的密码文件

# echo "rsync_backup:leesir" >/etc/rsync.password

# cat /etc/rsync.password

rsync_backup:leesir   #注:rsync_backup为虚拟用户,leesir为这个虚拟用户的密码

# chmod 600 /etc/rsync.password #为密码文件提权,增加安全性

# ll /etc/rsync.password

-rw-------. 1 root root 20 4月  22 14:20 /etc/rsync.password

4.1.5 启动rsync 服务

# rsync --daemon   #启动rsync服务

# ps -ef |grep rsync

root     14871     1  0 14:24 ?        00:00:00 rsync --daemon

root     14873 14788  0 14:24 pts/0    00:00:00 grep rsync

# netstat -lnutp |grep rsync

tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      14871/rsync

tcp        0      0 :::873                      :::*                        LISTEN      14871/rsync

4.1.6 通过inotify-master测试推送

inotify-master配置密码文件,测试推送

# echo "leesir" >/etc/rsync.password

# cat /etc/rsync.password

leesir   #注意:这里只要写密码即可,切记。

# chmod 600 /etc/rsync.password

# ll /etc/rsync.password

-rw------- 1 root root 7 4月  22 14:32 /etc/rsync.password

# echo "hello leesir">test.txt

# cat test.txt

hello leesir

# rsync -avz test.txt rsync_backup@192.168.1.160::backup --password-file=/etc/rsync.password

sending incremental file list

test.txt

sent 82 bytes  received 27 bytes  72.67 bytes/sec

total size is 13  speedup is 0.12

rsync -avz /home/website/h5 puppet@10.104.3.137::backup --password-file=/etc/rsyncd.password

#!/bin/bash

#para

host01=10.104.3.137  #inotify-slave的ip地址

src=/home/website/h5/        #本地监控的目录

dst=backup         #inotify-slave的rsync服务的模块名

user=puppet      #inotify-slave的rsync服务的虚拟用户

rsync_passfile=/etc/rsyncd.password   #本地调用rsync服务的密码文件

inotify_home=/usr/local/inotify-3.14    #inotify的安装目录

#judge

if [ ! -e "$src" ] \

|| [ ! -e "${rsync_passfile}" ] \

|| [ ! -e "${inotify_home}/bin/inotifywait" ] \

|| [ ! -e "/usr/bin/rsync" ];

then

echo "Check File and Folder"

exit 9

fi

${inotify_home}/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e close_write,delete,create,attrib $src \

| while read file

do

#  rsync -avzP --delete --timeout=100 --password-file=${rsync_passfile} $src $user@$host01::$dst >/dev/null 2>&1

cd $src && rsync -aruz -R --delete ./  --timeout=100 $user@$host01::$dst --password-file=${rsync_passfile} >/dev/null 2>&1

done

exit 0

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。