생성 후 자동으로 파일을 대상에 복사

생성 후 자동으로 파일을 대상에 복사

Unix에서는 파일이 생성되자마자 복사할 수 있는 방법이 있나요? 파일이 서로 다른 시간에 생성되는 위치가 있습니다. 쉘 스크립트를 사용하여 Unix의 다른 위치에 파일을 자동으로 복사하려면 어떻게 해야 합니까?

답변1

inotifywait -e close_write --format "%f" --monitor . |
  while IFS= read -r line
  do
    #cp "$line" destination/ #this would not replicate directories
    tar cf - "$line" | tar -C destination/ xf - #this should replicate directories
  done

디렉토리(현재 디렉토리에 사용 .)의 파일 수가 inotify 감시에 대한 시스템 제한(coteyr가 언급한 fs.inotify.max_user_watches)을 초과하지 않는 한 이 문제를 해결해야 합니다.

답변2

쉘 스크립트만 사용하여 파일을 생성하면 실제로 해당 파일을 복사할 수 없습니다. 저는 세 가지 해결책을 생각해 봤습니다.

  1. rsync 대 cron - 간단하고 표준적이며 쉽습니다. 가끔씩(1시간에 한 번씩) 디렉터리에서 rsync를 실행합니다. 변경 사항의 양에 따라 거대한 구조물을 몇 초 안에 동기화할 수 있습니다.

  2. 그루스터또는 유사합니다. 필요에 따라.

  3. 그냥 심볼릭 링크를 사용하세요.

관련 정보