-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpush_accesslog.sh
More file actions
executable file
·53 lines (46 loc) · 1.2 KB
/
push_accesslog.sh
File metadata and controls
executable file
·53 lines (46 loc) · 1.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/bin/bash
#
# Author: Payne Zheng <zzuai520@live.com>
# Date: 2017-08-18 17:25:41
# Location: Shenzhen
# Desc: push node accesslog to logserver2
#
# varaible
workingDir=$(cd $(dirname $0); pwd -P)
dateDay=$(date +%Y%m%d)
dateTime=$(date +%H)
dirList=$(mktemp)
# clean tempfile
cleanUp() {
rm -f $dirList
}
# make push dir list
makeDirList() {
logDir="$workingDir/complog"
find $logDir -maxdepth 2 -name "$dateDay" -type d | sort -nr > $dirList
}
# rsync cmd
rsyncCmd() {
local dstDir=$1
rsync -aq --contimeout=60 --timeout=30 \
--bwlimit=240 --partial --password-file=$passfile \
$srcDir/ $user@$logserver::$sharName/$dstDir/
}
# rsync push file
pushFile() {
local user=root passfile=/etc/rsyncd.passwd
local sharName=accesslog logserver=183.131.64.126
while read srcDir
do
domainId=$(awk -F/ '{print $(NF-1)}' <<<$srcDir)
rsyncCmd "$domainId/$dateDay"
if test $dateTime = 00 -o $dateTime = 01; then
yesterDay=$(date '+%Y%m%d' -d -1day)
srcDir=$(awk -vd=$yesterDay -F/ '{$NF=d}1' OFS=/ <<<$srcDir)
rsyncCmd "$domainId/$yesterDay"
fi
done < $dirList
}
makeDirList
pushFile
trap cleanUp exit