누군가 FTP를 통해 파일을 변경할 때 쉘 스크립트를 어떻게 실행할 수 있습니까?

누군가 FTP를 통해 파일을 변경할 때 쉘 스크립트를 어떻게 실행할 수 있습니까?

VPS에서 Ubuntu 15.04 서버를 실행하고 있습니다. 내 친구가 FTP를 통해 게임 서버의 구성 파일을 변경할 수 있도록 만들고, 작업이 완료되면 서버를 종료한 다음 다시 시작하는 쉘 스크립트를 실행합니다. 감사해요!

답변1

업로드 후 스크립트 실행

pureftpd제공한다pure-uploadscript, 게임 프로세스를 다시 시작하는 데 사용할 수 있습니다.

설명

--with-uploadscriptPure-FTPd가 (바이너리 배포판의 기본값) 로 컴파일되고 -o(또는 --uploadscript)이 서버에 전달되면 명명된 파이프가 /var/run/pure-ftpd.upload.pipe생성됩니다. 또한 /var/run/pure-ftpd.upload.lock잠금에 사용되는 중요한 파일인 을 볼 수 있습니다 . 업로드가 성공적으로 완료되면 파일 이름이 파이프에 기록됩니다. pure-uploadscript 이 파이프를 읽어 자동으로 프로그램이나 스크립트를 실행하여 새로 업로드된 파일을 처리합니다.

(로부터맨페이지)

이를 사용하여 게임 구성 파일(업로드/수정된 파일이 스크립트의 첫 번째 인수로 전달됨 $1)의 변경 사항을 감지하고, 변경된 경우 게임 서버를 다시 시작합니다.

그렇지 않으면 일부 bash스크립팅을 사용하여 구성 파일 cron을 확인 mtime하고 새로운 것으로 변경되면 서버를 다시 시작할 수 있습니다. 아니면 당신은 얻을 수정말 멋지다그리고 inotify다음과 같은 것을 통해 연결합니다inotify-tools; 그러나 그것은 이것에 대해 과잉일 가능성이 높습니다.

답변2

당신이 사용하고 있거나 사용할 것이라고 가정proftpd그런 다음 모듈을 사용할 수 있습니다mod_exec파일이 변경되면 명령을 실행합니다.

그러나 나는 이것을 권장하지 않습니다. 서비스를 다시 시작하려면 제어된 원격 세션을 사용해야 합니다. 이 작업은 최소한의 권한을 가진 사용자로 수행한 다음 올바른 사양을 사용하여 수행할 수 있습니다.sudoers관심 있는 서비스에만 접근을 허용하도록 파일을 설정하세요.

관련 정보