셸 스 크 립 트 - rsync + inotify 자동 배치 원 격 실시 간 동기 화

2812 단어 ShellLinux
반나절 동안 서버 설정 파일 은 일반 사용자 로 전송 되 었 습 니 다. 클 라 이언 트 가 전송 할 때 오류 가 발생 할 수 있 습 니 다. 백업 디 렉 터 리 의 주 그룹 이 든 권한 이 든 변경 할 수 없습니다. 루트 사용자 의 파일 이 전송 되면 루트 그룹 주 로 변경 할 수 없습니다. 일반 사용자 일 수 있 습 니 다. 그러나 이것 은 백업 과정 에 영향 을 주지 않 고 화면 에 오류 메 시 지 를 표시 할 뿐 입 니 다.이 백업 을 사용 하 는 것 은 모두 내부 네트워크 로 전송 되 는 것 일 것 입 니 다. 루트 사용자 도 영향 을 주지 않 습 니 다. 보안 을 위해 권한 이 넘 치지 않도록 일반 사용자 로 도 좋 습 니 다.
#/bin/bash
#rsync+inotify    

#   yum    
[ $(yum repolist | awk '/repolist/{print$2}' | sed 's/,//') -eq 0 ] && echo '   yum   。' && exit 2

echo -e "\e[1;31m     1(    )
2( )\e[0m" read -p " :" zbks case "$zbks" in 1) # echo -e "\e[1;31m rsync ..\e[0m" yum install rsync -y if [ $? = 0 ];then # echo > /etc/rsyncd.conf cat >> /etc/rsyncd.conf < /etc/rsync.password chmod 600 /etc/rsync.password # rsync rsync --daemon # echo "/usr/bin/rsync --daemon" >>/etc/rc.d/rc.local chmod a+x /etc/rc.d/rc.local echo -e "\e[1;31m , \backup。
ps -ef |grep rsync|grep -v grep 。
2 。\e[0m" else echo -e "\e[1;31m rsync 。\e[0m" exit 3 fi ;; 2) # echo -e "\e[1;31m rsync ..\e[0m" yum install rsync -y if [ $? = 0 ];then # echo "a1b2c3" >/etc/rsync.password chmod 600 /etc/rsync.password echo -e "\e[1;31m inotify-tools ..\e[0m" yum install -y inotify-tools # inotify #inotify , , "** Event Queue Overflow **" , echo "fs.inotify.max_queued_events=1000000" >> /etc/sysctl.conf # echo "fs.inotify.max_user_watches=1000000" >> /etc/sysctl.conf # inotify echo "fs.inotify.max_user_instances=100000" >> /etc/sysctl.conf # inotify sysctl -p # rsync+inotifywait while [ 1 ] do echo -e "\e[1;31m ( , :/bak)\e[0m" read -p " :" bak echo -e "\e[1;31m IP, :192,168.248.129\e[0m" read -p " :" BIP echo -e "\e[1;31m $bak, IP $BIP, ?\e[0m" read -p " :y : " yn if [ $yn = y ];then # rsync+inotify touch /root/inotify_rsync.sh cat >> /root/inotify_rsync.sh <> /etc/rc.d/rc.local chmod a+x /etc/rc.d/rc.local /bin/bash /root/inotify_rsync.sh & echo -e "\e[1;31m ,inotify_rsync /root/ , 。\e[0m" break fi done else echo -e "\e[1;31m rsync 。\e[0m" exit 3 fi ;; *) echo -e "\e[1;31m \e[0m" exit ;; esac

댓 글 참고:
https://blog.51cto.com/13444271/2113632
https://blog.csdn.net/qq_30429153/article/details/85273633

좋은 웹페이지 즐겨찾기