lsyncd를 사용하여 2개 서버 간 양방향 동기화

3874 단어 lsync2waysync

요구 사항


  • 최소 2개의 서버

  • lsyncd가 두 서버 모두에 설치됨
  • 두 서버 간의 ssh 액세스

  • 가정


  • 두 서버의 사용자 이름: forge
  • 서버 #1의 IP: 111.111.111
  • 서버 #2의 IP: 222.222.222
  • 2개의 서버 간에 동기화할 폴더(다를 수 있음, 이 예에서는 동일한 경로와 디렉토리): syncro
  • SSH 키(다를 수 있음, 이 예에서는 동일한 키 이름): syncro_key

  • 설정



    이 설정은 서버 #1용이며 서버 #2 설정과 동일합니다. 4단계 코드의 주석을 참조하십시오.
  • lsyncd 설치
  • sudo apt install lsyncd

  • lsyncd 로그 폴더 생성
  • sudo mkdir /var/log/lsyncd

  • 로그 및 상태 파일 생성
  • sudo touch /var/log/lsyncd/lsyncd.{log,status}

  • 구성 파일 생성
  • sudo nano /etc/lsyncd.conf.lua

  • 참고: -- 이후는 코드의 주석입니다.


  •   -- server #1 setup
      settings {
              logfile = "/var/log/lsyncd/lsyncd.log", -- location of log file created in step 3
              statusFile = "/var/log/lsyncd/lsyncd.status", -- location of status file created in step 3
      }
    
      targetlist = {
          "[email protected]:/home/forge/syncro", -- server #2 will have target [email protected]
      }
    
      for _, server in ipairs( targetlist ) do
          sync {
              default.rsync,
              source = "/home/forge/syncro", -- folder which to sync from
              target = server,
              delete = 'running',
              rsync = {
                  rsh = "ssh -i /home/forge/.ssh/syncro_key", -- ssh key
                  update = true,
                  archive = true,
                  compress = true,
              }
          }
      end
    


  • lsyncd 서비스 시작
  • sudo service lsyncd start

  • lsyncd 서비스가 사용할 구성 설정
  • sudo lsyncd /etc/lsyncd.conf.lua


  • 메모



    볼 수 있는 파일/폴더 수에 제한이 있습니다.
  • 현재 제한을 확인하려면:
  • cat /proc/sys/fs/inotify/max_user_watches

  • 제한을 영구적으로 변경하려면: (500000은 예시 숫자임)
  • sudo sysctl fs.inotify.max_user_watches=500000

  • 좋은 웹페이지 즐겨찾기