오랜 연결 끊김에도 불구하고 모든 데이터가 SSH 파이프로 전송되도록 하는 방법은 무엇입니까?

오랜 연결 끊김에도 불구하고 모든 데이터가 SSH 파이프로 전송되도록 하는 방법은 무엇입니까?

제가 사용하고 있는 노트북의 인터넷 연결이 간헐적으로 끊깁니다. (즉, 일주일 동안 인터넷이 없을 때도 있습니다.) 랩톱의 프로세스 출력이 내 서버에 나타나기를 원합니다. 그것모두거기에 가야 해,마지막으로, 그것에 대해 생각할 필요 없이 SSH를 통해.

어떻게 해야 하나요?


테스트 케이스

# print current date to FIFO every second
while true; do sleep 1; date; done > magic-fifo

실행 상태로 두고 일주일 동안(또는 설득력이 있을 만큼 오랫동안) 인터넷 연결을 끊었다가 다시 연결하세요. 모든 데이터는 연결되면 즉시 전송되어야 하지만, 연결되지 않으면 다시 연결될 때까지 버퍼링되어야 합니다.

한 번의 시도

mkfifo magic-fifo

cat magic-fifo \
| pv --buffer-size 1g --buffer-percent \
| AUTOSSH_POLL=10 AUTOSSH_PORT=50000 autossh user 'cat >> log'

pv일주일 분량의 데이터가 있을 경우를 대비해 여기에 최대 1GiB의 데이터를 버퍼링하세요.커널 파이프 버퍼 채우기.
autosshssh네트워크가 다운되면 이를 마무리하고 종료/부활시켜서 계속 실행하세요.

이것연결을 끊을 때 일부 데이터 삭제, 그러나 다른 방식으로 작동합니다. 데이터 손실의 원인은 ssh그것을 읽고, 보낼 수 없다는 것을 깨닫고, 죽임을 당하는 것이라고 생각합니다 autossh.


재부팅 후에도 데이터가 유지될 것이라고는 기대하지 않지만 이는 좋은 보너스가 될 것입니다.

답변1

출력을 로컬 파일에 저장한 다음 rsync --partial --append해당 파일을 계속 진행하여 서버에 푸시하시겠습니까?

관련 정보