程序完成的简单通知

程序完成的简单通知

我正在运行一些东西,同时通过 ssh 进入机器(通过 mosh)。我将使用 sendmail 来获取程序终止的通知,但出于安全原因,该计算机无法连接到网络。

程序终止后,有什么方法可以在本地计算机上收到通知吗?

编辑:具体来说,一旦我登录到删除计算机,我希望在保持同一 ssh 会话的同时在本地计算机上收到某种通知。

答案1

在脚本结束时本地通知有多种解决方案,这里有两种:

在末尾使用 beep 字符,发出可听见的声音:

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

相关内容