(mosh経由)マシンにSSHを接続しながら何かを実行しています。プログラム終了通知を受け取るために sendmail を使用したいのですが、セキュリティ上の理由からコンピュータがネットワークに接続できません。
プログラムが終了した後に自分のローカルコンピュータから通知を受け取る方法はありますか?
編集:特に削除されたコンピュータにログインすると、同じSSHセッションを維持しながらローカルコンピュータから何らかの通知を受けたいと思います。
答え1
スクリプトの最後にローカル通知のためのいくつかのソリューションがあります。以下は2つあります。
最後にビープ音を使って音を出します。
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