Linux에서 원격 파일 시스템을 모니터링하는 방법은 무엇입니까?

Linux에서 원격 파일 시스템을 모니터링하는 방법은 무엇입니까?

내 비즈니스 목적은 Linux에서 원격 파일 시스템을 모니터링하고 새 파일이 있으면 SFTP를 다른 시스템으로 전송하고 삭제하는 것입니다.

그러나 제한 사항은 원격 컴퓨터에 라이브러리를 설치할 수 없다는 것입니다. 따라서 원격 시스템의 간격 SSH 명령 폴링을 구현하려고 생각 중입니다.

내 질문:

  1. 간격 폴링을 구현할 수 있나요? 아니면 더 좋은 생각이 있나요?

  2. 원격 컴퓨터를 모니터링하려면 어떤 SSH 명령을 사용해야 합니까?

답변1

간단하고 게으른 방법:

crontab로컬 시스템의 일반 사용자의 경우(15분마다):

*/15 * * * * /bin/bash /path/to/script.sh

암호:

#!/bin/bash

source ~/.bashrc

ssh-add /home/me/.ssh/id_rsa
ssh user@remote-server printf '%s\n' '/path/to/new_files/*' > ~/.$$_remote-files
if ! cmp ~/.$$_remote-files ~/.remote-files &>/dev/null; then
    echo 'new file(s) or dir(s) detected !'
    # ssh user@remote-server rm -rf '/path/to/new_files/*'
    mv ~/.$$_remote-files ~/.remote-files
fi

자동 SSH 로그인을 구현하려면 비밀번호 없이 SSH 암호 문구를 생성해야 합니다.

$ ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/me/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/me/.ssh/id_rsa
Your public key has been saved in /home/me/.ssh/id_rsa.pub
The key fingerprint is:
123456789ABCDEF

답변2

입력하다

(entr남성,홈페이지):파일이 변경되면 임의 명령 실행.

ls pathToRead | entr -r scp pathToRead remoteDestination

또한 확인다른 복사 방법.

답변3

  1. 더 나은 접근 방식은 파일 서버에 스캐너(inotify 기반)를 설치하는 것입니다. 새 파일이 나타나면 즉시 스캐너는 관심 있는 사람에게 일종의 메시지(UDP 브로드캐스트, 이메일 등)를 보냅니다. 이를 위해서는 약간의 프로그래밍이 필요하며 이러한 응용 프로그램은 파일 서버에 설치되어 실행되어야 합니다.
    이를 수행할 수 없는 경우 투표만이 유일한 선택입니다.

  2. ssh명령 이 아니라 sftp명령입니다. 명령은 입니다 ls. 또한 약간의 프로그래밍이 필요하지만 셸에서 완전히 수행할 수 있습니다.

관련 정보