通过电子邮件在服务器上触发脚本

通过电子邮件在服务器上触发脚本

我想触发我的 Python 脚本远程,但实际上并不想暴露任何 Web 或其他界面,例如我需要一些被动的方式。我能想到的方法之一是发送电子邮件,然后服务器可以接收它并运行脚本。在 Ubuntu 上打开一个控制台窗口然后运行脚本是非常理想的,这样我可以看到输出和进度,如果它持续很长时间,我将可以直接访问它。但如果不可能,那么仅运行脚本就足够了,我会考虑如何将输出重定向到文件中。

答案1

进程邮件是收到电子邮件时自动运行脚本的一种方法。另一种方法是定义新的邮件别名,例如[电子邮件保护]并让它运行一个脚本。例如,在 Postfix 中,你可以将类似以下内容的别名放入

[email protected]  "|screen python your_script.py"

然后只需在您的 Python 脚本中添加必要的安全带,这样它就不会在每次有新邮件到达该箱时自动执行该软件;让脚本检查邮件正文中的关键字,或者执行其他操作。

屏幕,那是什么?老牌屏幕可帮助您满足监控需求。只需运行脚本即可

screen python your_script.py

然后你可以登录到你的服务器并使用以下命令附加到该屏幕

screen -rd

当您观察完进度后,按下Ctrl+a-d即可分离屏幕并保持其运行。

答案2

进程邮件是解决这个问题的常用方法。为特定用户设置它,编写相关的 procmail 配方,然后向该用户发送邮件可以触发您想要的任何操作。

有些人会建议使用 procmail 的替代品,因为它已经有相当长一段时间没有积极开发了 - 但是,它也运行得很好。

相关内容