파일이 전송되지 않은 경우에만 삼바를 다시 시작하는 방법

파일이 전송되지 않은 경우에만 삼바를 다시 시작하는 방법

나는 이것을 할 방법을 찾으려고 노력하고 있습니다. 지금은 "smbstatus"를 실행하여 Samba를 재설정하는 것만 허용하는 스크립트가 있지만 그다지 안정적이지 않습니다(Windows 클라이언트가 공유를 매핑할 때 잠긴 파일은 표시하고 파일 활동은 표시하지 않음).

Samba가 파일을 전송하는 시기를 감지하는 방법이 있습니까?

참고: 클라이언트 매핑이 아닌 활성 파일 전송만 가능

편집: 이것이 내 스크립트의 모습입니다

until sudo smbstatus | grep "No locked files"
do
    echo "Processes Running..."
    sleep 5
    echo ""
done
sudo service smbd restart
echo "Restarted SMB"

답변1

이 설정을 사용하여 활발하게 사용되지 않는 하위 프로세스를 deadtime종료 할 수 있습니다 .smbd

10분 동안 유휴 상태인 후 하위 프로세스를 종료하는 예:

deadtime = 10

문서에는 무엇보다도 다음과 같이 명시되어 있습니다.

데드타임은 열린 파일 수가 0일 때만 적용됩니다.

대부분의 클라이언트에는 연결이 끊어지면 자동으로 다시 연결하는 기능이 있으므로 대부분의 경우 이 매개변수는 사용자에게 투명해야 합니다.

대부분의 시스템에서는 이 매개변수를 사용하고 몇 분의 시간 제한을 설정하는 것이 좋습니다.

이 시나리오를 사용하면 하위 프로세스 수를 계산하고 상위 프로세스만 남을 때 재설정을 수행할 수 있습니다. (운이 좋을 수도 있지만 최근에는 smbd하위 프로세스가 여전히 실행 중이더라도 상위 프로세스를 다시 시작하는 데 아무런 문제가 없었습니다 .)

관련 정보