bash를 사용하여 무한 cp 명령이 실패하는지 감지하는 방법

bash를 사용하여 무한 cp 명령이 실패하는지 감지하는 방법

부팅 시 sshfs를 사용하여 mnt에 원격 폴더를 마운트하는 작은 데이터 수집기인 Raspberry Pi Zero W가 있습니다. 데이터 전송은 cp 명령을 사용하여 수행됩니다. 예를 들어 cp device file &장치는 로컬이고 파일은 원격 폴더에 있습니다. 이것은 무한 루프입니다. Pi의 전원 공급 장치에 장애가 발생하면 전원이 복구되면 프로세스가 다시 시작됩니다. 그런데 복제 과정에서 서버에 장애가 발생하면 어떻게 될까요? 그런 다음 복제가 다시 시작될 때까지 다시 시작을 순환하고 싶습니다. 하지만 서버가 다운되었을 때 pi에서 어떻게 알 수 있나요?

답변1

여기에는 많은 문제가 있습니다.

  • cp는 스트림이 아닌 파일을 복사하도록 설계되었습니다. pi가 다시 시작될 때마다 복사본을 다시 시작하여 모든 이전 데이터를 0으로 만듭니다. 이것이 원하는 것이 아니라면 다음과 같은 것을 사용하는 것이 더 나을 수도 있습니다 cat device >> file.dd
  • sshfs는 그다지 강력하지 않습니다. 서버가 다시 시작되면 sshfs 연결이 종료되고 적극적으로 다시 시작하지 않으면 재개되지 않으며 cp가 종료됩니다. NFS는 이러한 상황을 처리하도록 설계되었으며 서버가 백업될 때까지 일시 중지했다가 아무 일도 일어나지 않은 것처럼 다시 시작합니다. ssh 자체를 사용하는 것만으로도 sshfs보다 나을 수 있습니다.
  • 수행 중인 작업에 따라 파일 시스템 의미를 사용하는 것보다 서버에 일종의 서비스를 설정하여 데이터를 수집하는 것이 더 나을 수도 있습니다. 양쪽 끝의 Netcat이 더 나을 수도 있지만, 그래도 그렇게 강력하지는 않습니다.

이 일을 하는 이유와 목표가 무엇인지에 대한 자세한 내용이 없으면 더 나은 조언을 제공하기 어렵습니다.

관련 정보