我正在管理一个工作站,最多有 5 个工作站运行基于 Ubuntu 的 Linux Mint。我自己的控制计算机也在运行 Mint。有什么好方法可以对命令进行排队并在主机上线时执行这些命令?
应满足以下要求:
- 当工作站离线时从队列中添加/删除命令(本地队列)
- 输出和退出代码应该被记录或邮寄(在我的本地计算机上)
- 保持简单:没有大型管理软件或 Web 界面
我已经在考虑了。我可以使用at
将命令传输到远程队列,并在系统空闲时运行它们。但我不确定当用户突然关闭工作站时远程 atq 是否持久。at
batch
有没有可以实现这一目的的软件或最佳实践?
答案1
你的工作站可以利用 cron 的内置@reboot
属性——如果你输入/etc/crontab
如下代码,cron 将在系统启动期间执行你想要的任何操作:
@reboot root /path/to/your/script
该脚本可以从主工作站复制新的待执行命令,然后执行它们,或者仅仅通知主工作站,嘿,我在线,如果有新的事情要做,请告诉我。
或者脚本可以只利用rsync
和获取应该运行的任何脚本。也许您可以在主工作站上有一个目录,将客户端应该运行的脚本放在其中?就像/opt/scripts/
。客户端将rsync
脚本目录,然后从其本地日志/状态文件中进行比较,看看是否需要运行某些脚本。
或者,您可以安装实际的管理软件,例如 Puppet 或 cfengine,但您反对这样做。:)