rsync가 호스트에 대해 실행될 때 전달 된 매개 변수를 구문 분석하려고합니다. 내가 통과 그래서 만약 --delete --prune-empty-dirs
하고 --timeout=60
, 내가 알고 싶은 것입니다. pre-xfer exec
rsyncd.conf 파일에서 사용할 수 있다는 것을 알고 있으며 인수를 다른 스크립트 (예 :)로 전달할 수 $RSYNC_ARG0,$RSYNC_ARG1,...$RSYNC_ARGN
있습니다. 내가 가진 문제는 이들 중 일부가 실제 주장으로 돌아온다는 것입니다.
bwlimit=100000
delete
그러나 다른 사람들은 이상한 문자열로 돌아옵니다.
vOtre.iLsf
전달 된 인수 / 매개 변수를 확인하기 위해 이러한 문자열을 구문 분석하는 방법이 있습니까? 다음은 동기화 호스트에 전달한 인수입니다.
--recursive --times --omit-dir-times --timeout=15 --bwlimit=100000 --port=38700 --quiet --exclude='string1' --exclude='string2' --exclude='string3' --exclude='string4' --exclude='string5' --exclude='string6' --exclude='string7' --timeout=60 --delete --prune-empty-dirs
그리고 다음은 내가받은 인수입니다 pre-xfer exec
(쉼표로 구분).
server,mOtre.isf,timeout=60,bwlimit=100000,delete
어떤 도움이라도 대단히 감사하겠습니다.
이것이 중요한지 모르겠지만 Linux 상자에서 Windows 상자의 cygwin에서 rsync로 동기화하고 있습니다. 매개 변수 / 인수 / 값이 동일하다고 가정하지만 주목할 가치가 있다고 생각했습니다.
EDIT mOtr
는을 의미 --prune-empty-dirs --omit-dir-times --times --recursive
하지만 .
의미 후에는 무엇인지 모르겠습니다 ...
서버 측에서는 클라이언트 측 명령에 제공되는 옵션을 직접 볼 수 없습니다. 클라이언트 측 명령은 옵션을 구문 분석 한 다음 서버 rsync 프로세스에 전달할 옵션 세트를 생성합니다.
서버는 자신의 일부를 수행하기 위해 알아야하는 옵션 만 가져옵니다. 예를 들어, exclude 옵션은 양측 간의 네트워크 연결에서 rsync 프로토콜을 통해 수행되는 파일 선택 프로세스의 일부입니다. 명령 줄을 통해 서버 측으로 전달되지 않습니다.
임의의 문자 Blob은 서버가 알아야하는 코드화 된 플래그 집합이있는 클라이언트에 구축 된 문자열입니다. 이들 중 일부는 추측 한대로 rsync 명령 줄의 짧은 옵션과 동일한 의미를 갖지만 다른 일부는 다른 의미를 갖거나 서버 작업에 고유합니다. (소스 코드를 다운로드하면 options.c의 'server_options'함수를 보면 알 수 있습니다)
안타깝게도 클라이언트 측 명령에 전달 된 정확한 명령 줄을 기반으로 결정을 내리려면 운이 좋지 않을 수 있습니다. 그러나 다른 환경 변수와 함께 필요한 정보를 계속 수행하기 위해 RSYNC_ARG에 전달되는 정보가 충분할 수 있습니다.
pre-xfer 스크립트가 실패하도록하여 특정 활동을 차단하는 것이 목표 인 경우 rsyncd.conf에서 다른 제한 및 제한을 설정하여 일부 작업을 수행 할 수도 있습니다.
행운을 빕니다!
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다