Windows 공유 드라이브에 도착하는 새 파일을 사용자에게 알리는 쉘 스크립트를 Linux 서버에서 작성하려고 합니다.
대부분의 솔루션에서는 다음 접근 방식을 권장합니다.
- Linux에 Windows 공유 폴더 탑재
- Linux 쉘 스크립트를 통해 폴링을 활성화합니다.
다만, 접근 문제로 인해 마운트가 허용되지 않기 때문에, 윈도우즈 드라이브를 마운트하지 않고 리눅스에서 이 작업을 하고 싶습니다.
답변1
이것은 효과가 있을 수 있습니다:
smbclient //server/share -A=/some/auth/file -TNc /some/timestamp/file - '/some/folder/*'
touch /some/timestamp/file
어디:
- //서버/공유원격 Windows 공유입니다.
- /일부/인증/파일공유에 액세스하기 위한 자격 증명이 포함된 파일입니다.
- /일부/타임스탬프/파일타임스탬프로 사용되는 파일입니다.
- /일부/폴더새 파일을 찾으려는 원격 공유의 폴더입니다.
아이디어는 원격 공유의 모든 파일을 로컬 파일보다 최신 것으로 간주한다는 것입니다./일부/타임스탬프/파일"새로운"으로. cmbclient 명령이 0바이트 이외의 값을 수신하면 새 파일이 있는 것입니다. smbclient 명령의 표준 출력을 " | tar tvf -
"로 파이프하여 새 파일 목록을 가져올 수도 있습니다.
이 접근 방식의 문제점은 실제로는복사모든 새 파일의 내용이 완료되었습니다. 원격 공유에 대용량 파일이 있는 경우 이는 엄청난 대역폭 낭비가 됩니다. 원격 시스템에 Linux와 유사한 명령이 있는 경우 를 find
사용하는 대신 해당 명령을 실행할 수 있습니다 tar
.