제가 사용하고 있는 노트북의 인터넷 연결이 간헐적으로 끊깁니다. (즉, 일주일 동안 인터넷이 없을 때도 있습니다.) 랩톱의 프로세스 출력이 내 서버에 나타나기를 원합니다. 그것모두거기에 가야 해,마지막으로, 그것에 대해 생각할 필요 없이 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의 데이터를 버퍼링하세요.커널 파이프 버퍼 채우기.
autossh
ssh
네트워크가 다운되면 이를 마무리하고 종료/부활시켜서 계속 실행하세요.
이것연결을 끊을 때 일부 데이터 삭제, 그러나 다른 방식으로 작동합니다. 데이터 손실의 원인은 ssh
그것을 읽고, 보낼 수 없다는 것을 깨닫고, 죽임을 당하는 것이라고 생각합니다 autossh
.
재부팅 후에도 데이터가 유지될 것이라고는 기대하지 않지만 이는 좋은 보너스가 될 것입니다.
답변1
출력을 로컬 파일에 저장한 다음 rsync --partial --append
해당 파일을 계속 진행하여 서버에 푸시하시겠습니까?