工作站上线后立即将远程命令排队执行

工作站上线后立即将远程命令排队执行

我正在管理一个工作站,最多有 5 个工作站运行基于 Ubuntu 的 Linux Mint。我自己的控制计算机也在运行 Mint。有什么好方法可以对命令进行排队并在主机上线时执行这些命令?

应满足以下要求:

  • 当工作站离线时从队列中添加/删除命令(本地队列)
  • 输出和退出代码应该被记录或邮寄(在我的本地计算机上)
  • 保持简单:没有大型管理软件或 Web 界面

我已经在考虑了。我可以使用at将命令传输到远程队列,并在系统空闲时运行它们。但我不确定当用户突然关闭工作站时远程 atq 是否持久。atbatch

有没有可以实现这一目的的软件或最佳实践?

答案1

你的工作站可以利用 cron 的内置@reboot属性——如果你输入/etc/crontab如下代码,cron 将在系统启动期间执行你想要的任何操作:

@reboot            root    /path/to/your/script

该脚本可以从主工作站复制新的待执行命令,然后执行它们,或者仅仅通知主工作站,嘿,我在线,如果有新的事情要做,请告诉我。

或者脚本可以只利用rsync和获取应该运行的任何脚本。也许您可以在主工作站上有一个目录,将客户端应该运行的脚本放在其中?就像/opt/scripts/。客户端将rsync脚本目录,然后从其本地日志/状态文件中进行比较,看看是否需要运行某些脚本。

或者,您可以安装实际的管理软件,例如 Puppet 或 cfengine,但您反对这样做。:)

相关内容