inotifywait

1
/usr/bin/inotifywait -mrq --timefmt '%Y-%m-%d %H:%M' --format '%T %w %f %e' -e create,delete,modify,move --exclude "\.(tmp|swp|log|info)" $mon_file >> $log_file

rsync

1
2
3
4
5
6
7
8
9
#!/bin/bash

[ ! -e 'exclude.list' ] && echo 'No exclude.list file, exit.' && exit 100

rsync -avz --delete --exclude-from=exclude.list /usr/local/sonatype-work 192.168.1.1:/usr/local

echo "`date +%Y-%m-%d" "%H:%M:%S` -- sync done." >> /var/log/rsync.log

echo "----------------------------------------------------------" >> /var/log/rsync.log

–delete参数会删除源目标没有的文件,等于覆盖 –exclude-from=exclude.list, exclude.list文件是相对路径

cache
elasticsearch
lock
log
orient
tmp

unison

 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
#/bin/bash

ip2="192.168.1.191"
src2="/usr/local/sonatype-work/nexus3/blobs"
dst2="/usr/local/sonatype-work/nexus3/blobs"
log_file="/var/log/inotifywait.log"

[ ! -e $log_file ] && echo "No $log_file file." && exit 100

local_md5=$(md5sum $log_file)

ssh $ip2 "md5sum $log_file" > ./tmp_file
remote_md5=$(cat ./tmp_file)

while true
do
    sleep 60

    local_md5_now=$(md5sum $log_file)

    ssh $ip2 "md5sum $log_file" > ./tmp_file
    remote_md5_now=$(cat ./tmp_file)

    echo "local_md5: $local_md5" >> /var/log/rsync.log
    echo "local_md5_now: $local_md5_now" >> /var/log/rsync.log
    echo "remote_md5: $remote_md5" >> /var/log/rsync.log
    echo "remote_md5_now: $remote_md5_now" >> /var/log/rsync.log

    if [[ $local_md5_now != $local_md5 ]] || [[ $remote_md5_now != $remote_md5 ]];then
        echo "`date +%Y-%m-%d %H:%M:%S` -- starting sync data." >> /var/log/rsync.log
        /usr/bin/unison -batch $src2 ssh://$ip2//$dst2 -servercmd /usr/bin/unison >> /var/log/unison_sync.log
        local_md5=$local_md5_now
        remote_md5=$remote_md5_now
        echo "`date +%Y-%m-%d" "%H:%M:%S` -- sync done." >> /var/log/rsync.log
    else
        echo "`date +%Y-%m-%d" "%H:%M:%S` -- no change." >> /var/log/rsync.log
    fi
done

更换ssh默认的22端口

1
2
/usr/bin/unison -batch /usr/local/jdk1.8.0_211 ssh://1.1.1.1:22017///usr/local/jdk1.8.0_211 -servercmd /usr/bin/unison
rsync -avz -e 'ssh -p 22017' /usr/local/sonatype-work 1.1.1.1:/usr/local/