![프로그램 완료에 대한 간단한 알림](https://linux55.com/image/69510/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%20%EC%99%84%EB%A3%8C%EC%97%90%20%EB%8C%80%ED%95%9C%20%EA%B0%84%EB%8B%A8%ED%95%9C%20%EC%95%8C%EB%A6%BC.png)
(mosh를 통해) 기계에 SSH를 연결하는 동안 뭔가를 실행하고 있습니다. 프로그램 종료 알림을 받기 위해 sendmail을 사용하고 싶지만 보안상의 이유로 컴퓨터가 네트워크에 연결할 수 없습니다.
프로그램이 종료된 후 내 로컬 컴퓨터에서 알림을 받을 수 있는 방법이 있습니까?
편집: 특히 삭제된 컴퓨터에 로그인하면 동일한 SSH 세션을 유지하면서 로컬 컴퓨터에서 일종의 알림을 받고 싶습니다.
답변1
스크립트 끝에 로컬 알림을 위한 여러 가지 솔루션이 있습니다. 다음은 두 가지입니다.
마지막에 경고음 문자를 사용하여 소리를 냅니다.
ssh user@host /path/to/script; echo -e '\a' > $(tty)
CD 드라이브를 꺼낼 수 있습니다(제가 가장 좋아하는 것으로, 무엇을 하든 눈에 띕니다 :-). 또한 나갔다가 돌아오거나 기계를 잠가도 보입니다. )
ssh user@host /path/to/script; eject
답변2
해외의 기계에서 메일을 보낼 필요가 없습니다. 명령이 완료되면 로컬 컴퓨터에서 이메일을 보낼 수 있습니다.
ssh host cmd ; echo "It's done." | mail me@somewhere -s Completion
원격 컴퓨터에 로그인 상태를 유지해야 하는 경우에도 해당 명령의 진행 상황을 모니터링할 수 있습니다. 예를 들어:
$ ssh host 'cmd1 ; echo Done $?; cmd2' | { while read a b; do [ "$a" = "Done" ] && echo "It's done with code $b." | mail me@somewhere -s Completion; done; }
위에서는 cmd1 ; echo Done $?; cmd2
원격 컴퓨터에서 실행됩니다. 루프를 통해 로컬 컴퓨터는 진행 상황을 모니터링하고 while
완료되면 이메일을 보냅니다.cmd1