rsync

http://rsync.samba.org/
https://download.samba.org/pub/rsync/rsync.html

Local:  rsync [OPTION...] SRC... [DEST]

Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST

Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

rsync -avz --progress -e 'ssh -p 3520' --chown=www-data:www-data /data/www/wwwroot/xxx/ root@ip:/data/www/wwwroot/xxx
rsync -avz --progress -e 'ssh -p 3520' /data/nginx_log root@ip:/data/

rsyncd.conf配置文件:
# cat /etc/rsyncd.conf
uid = nobody
gid = nobody
address = x.x.x.x
use chroot = no
max connections = 20
strict modes = yes
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log format = %t %a %m %f %b

[logs]
path = /data/logs/
ignore errors = yes
read only = no
write only = no
list = no
hosts allow = x.x.x.x,x.x.x.x
hosts deny = *
uid = root
gid = root

使用rsync拉取日志的shell脚本:

 

#!/bin/bash
MYIFS=":::"

while read line
do
echo $line | grep '^#' > /dev/null && continue
echo ============================================================================================
echo `date +"%F %T"` start_time
FDISK=`echo $line | awk -F"$MYIFS" ' { print $1; } '`
DOMAIN=`echo $line | awk -F"$MYIFS" ' { print $2; } '`
IP=`echo $line | awk -F"$MYIFS" ' { print $3; } '`
#echo $DOMAIN $IP
for x in $IP
do
echo "------[ $DOMAIN $x ]------"
DIR=/$FDISK/logs_m/nginx/$DOMAIN/$x/
#echo $DIR
test -d $DIR || mkdir -p $DIR
rsync -avz root@$x::nginxlog/$DOMAIN/access.log.*.gz /$FDISK/logs_m/nginx/$DOMAIN/$x/
#echo rsync -avz root@$x::nginxlog/$DOMAIN/access.log.*.gz /$FDISK/logs_m/nginx/$DOMAIN/$x/
echo ""
done
echo `date +"%F %T"` end_time

done

配置文件:
#PARTITION:DOMAIN:::IP1 IP2 (多个IP之间使用空格分开)


posted @ 2018-04-04 15:39  helloworld899  阅读(143)  评论(0编辑  收藏  举报