In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-01-31 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Servers >
Share
Shulou(Shulou.com)06/02 Report--
#! / bin/bash
Src=/apps/dockerfiles/lnmp/nginx/html/aiitle/aiitle_backend/public/uploads/ # Source path that requires synchronization
The name of rsync-daemon published on the target server of des=upload/ # will not be introduced here by rsync-daemon. It is relatively simple to search it on the Internet.
Rsync_passwd_file=/etc/rsyncd.passwd # password file verified by rsync
Ip1=192.168.8.10 # Target Server 1
# ip2=192.168.0.19 # Target Server 2
User=root # rsync-the authenticated user name defined by daemon
Cd ${src} # in this method, because of the feature of rsync synchronization, you must first cd to the source directory before inotify listens. / before the directory structure is consistent after rsync synchronization, interested students can enter
Try to watch its effect.
/ usr/local/bin/inotifywait-mrq-- format'% Xe% w% f'-e modify,create,delete,attrib,close_write,move. / | while read file # monitors the "File path > path list" loop where changes have occurred
Do
INO_EVENT=$ (echo $file | awk'{print $1}') # splits the inotify output and assigns the event type to INO_EVENT
INO_FILE=$ (echo $file | awk'{print $2}') # cuts the inotify output and assigns the file path portion to INO_FILE
Echo "--$(date)--" > > / var/log/rsync.log 2 > & 1
Echo $file > > / var/log/rsync.log 2 > & 1
# add, modify, write complete, move into events
# add and change to the same judgment, because they are definitely aimed at the operation of files. Even if you create a new directory, only an empty directory will be synchronized, which will not affect the speed.
If [[$INO_EVENT = ~ 'CREATE']] | | [$INO_EVENT = ~' MODIFY']] | | [$INO_EVENT = ~ 'CLOSE_WRITE']] | | [[$INO_EVENT = ~' MOVED_TO']] # judge the type of event > case
Then
Echo 'CREATE or MODIFY or CLOSE_WRITE or MOVED_TO' > > / var/log/rsync.log 2 > & 1
Rsync-avzcR-e 'ssh-p 10222'-password-file=$ {rsync_passwd_file} $(dirname ${INO_FILE}) ${user} @ ${ip1}:: ${des} & & # INO_FILE variable represents the path
Path oh-c check the contents of the file
Rsync-avzcR-e 'ssh-p 10222'-- password-file=$ {rsync_passwd_file} $(dirname ${INO_FILE}) ${user} @ ${ip2}:: ${des} > > / var/log/rsync.log 2 > & 1
# take a closer look at the rsync synchronization command source above using the $(dirname ${INO_FILE}) variable, that is, only synchronizing the directory of the changed files each time (the method of synchronizing only the target files will leak the files in some extreme > end environments of the production environment. Now you can balance the files without leaking files) and then use the-R parameter to pass the directory structure of the source. Return to the target to ensure the consistency of the directory structure
Fi
# Delete and move out events
If [[$INO_EVENT = ~ 'DELETE']] | | [$INO_EVENT = ~' MOVED_FROM']]
Then
Echo 'DELETE or MOVED_FROM' > > / var/log/rsync.log 2 > & 1
Rsync-avzR-e 'ssh-p 10222'-delete-- password-file=$ {rsync_passwd_file} $(dirname ${INO_FILE}) ${user} @ ${ip1}:: ${des} & &
Rsync-avzR-e 'ssh-p 10222'-delete-- password-file=$ {rsync_passwd_file} $(dirname ${INO_FILE}) ${user} @ ${ip2}:: ${des} > > / var/log/rsync.log 2 > & 1
# look at the rsync command, if you directly synchronize the deleted path ${INO_FILE}, you will report a no such or directory error, so the source of synchronization here is the path above the deleted file or directory, and add-- delete to delete files that are on the destination but not in the source. The specified file cannot be deleted here. If the deleted path is closer to the root, the directory will be synchronized for more months, and the synchronous deletion operation will take more time. Here is a better way for students, welcome to communicate.
Fi
# modify attribute event refers to touch chgrp chmod chown and other operations
If [[$INO_EVENT = ~ 'ATTRIB']]
Then
Echo 'ATTRIB' > > / var/log/rsync.log 2 > & 1
If [!-d "$INO_FILE"] # if you modify the property of a directory, it is not synchronized, because the synchronized directory will be scanned recursively, and when the files in this directory are synchronized, rsync will update accordingly
This directory.
Then
Rsync-avzcR-e'ssh-p 10222'-- password-file=$ {rsync_passwd_file} $(dirname ${INO_FILE}) ${user} @ ${ip1}:: ${des} & &
Rsync-avzcR-e 'ssh-p 10222'-- password-file=$ {rsync_passwd_file} $(dirname ${INO_FILE}) ${user} @ ${ip2}:: ${des} > > / var/log/rsync.log 2 > & 1
Fi
Fi
Done
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.