让Mac OS X系统启动时执行脚本的方法




让Mac OS X系统启动时执行脚本的方法

2022-07-20 20:18:18 网络知识 官方管理员
公司购买了Zoho公司的资产管理软件AssetExplorer,该资产管理软件可以通过在客户机电脑上安装Agent客户端软件收集客户机的硬件及软件信息。公司有若干台iMac电脑,运行的是MacOSX10.6的系统,由于AssetExplorer只支持Windows版本的Agent,对于其他系统的计算机需要通过在客户端执行bash脚本文件的方式,收集客户机的信息并上传到服务器。这就要求客户机的MacOSX系统启动的时候能够自动执行脚本程序,而且要基于系统服务层面,用户无需登录,脚本也能在后台运行,最好脚本程序后台还能做到固定时间自动运行。

我们可以利用MacOSX内置的一种称为LaunchDaemon/Agent的机制来实现系统启动时自动执行脚本程序。MacOSX从10.4开始,采用launchd进程来管理整个操作系统的服务及进程。传统的UNIX会使用/etc/rc.*或其他的机制来管理开机时要启动的启动服务,而现在的MacOSX则使用launchd来管理,它的启动服务称为LaunchDaemon/Agents。利用LaunchDaemon/Agent,我们就可以令脚本程序在系统启动的时候在后台运行了。

•LaunchDaemon和LaunchAgent的区别

  LaunchDaemon和LaunchAgent是同一种东西在不同应用范围的名称。LaunchDaemon是系统级别的服务,称为daemon,LaunchAgent是用户级别的服务,称为agent,前者在开机时会加载,后者在用户登录后才会加载。所以我们采用LaunchDaemon的方式运行脚本。

•从AssetExolorer导出脚本文件

  选择扫描→孤立工作站审计→通过脚本扫描工作站→Mac导出脚本文件ae_scan_mac.sh,并修改脚本文件中的hostName="服务器IP地址或域名地址",并检查portNo一项是否正确。

•创建plist配置文件

  Launchd进程需要读取一个xml格式的plist配置文件,创建该文件并将其放置在/System/Library/LaunchDaemons/或者/Library/LaunchDaemons/目录下。可在Windows下预先创建该文件,需要使用支持Unix格式的文本编辑器(比如UltraEdit)创建该文件。
  
其中plist文件格式及每个字段的含义:
ae_scan_mac.plist文件范例:

XML/HTMLCode复制内容到剪贴板

发表评论:

最近发表
网站分类
标签列表