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

11/28 03:19:42 来源网站:seo优化-辅助卡盟平台

标识launchd在加载完该项服务之后立即启动路径指定的可执行文件。默认值为false。设置为true即可实现开机运行脚本文件。

4)WorkingDirectory(可选)

运行可执行文件之前,指定当前工作目录的路径。

5)KeepAlive(可选)

这个关键字可以用来控制是否让可执行文件持续运行,默认值为false,也就是说满足具体条件之后才启动。当设置值为ture时,表明无条件的开启可执行文件,并使之保持在整个系统运行周期内。

6)StartCalendarInterval(可选)

该关键字可以用来设置定时执行可执行程序,可使用Month、Day、Hour、Minute等子关键字,它可以指定脚本在多少月、天、小时、分钟、星期几等时间上执行,若缺少某个关键字则表示任意该时间点,类似于Unix的Crontab计划任务的设置方式,比如在该例子中设置为每天11点钟执行脚本文件。

所有key关键字详细使用说明可以在Mac OS X终端下使用命令man launchd.plist查询。

•在客户机部署配置文件和脚本文件

1) 首先为Mac OS X系统的当前的用户设置一个密码,在系统偏好设置→账户中设置。

然后,可通过共享等方式将脚本文件ae_scan_mac.sh和plist文件ae_scan_mac.plist拷贝到本地硬盘的一个临时目录中,然后打开实用工具→终端,使用以下命令:

sudo mv ae_scan_mac.* /Library/LaunchDaemons

将这两个文件移动到/Library/LaunchDaemons/目录下。

2) 修改文件权限:

sudo chown root:wheel /Library/LaunchDaemons/ae_scan_mac.*

sudo chmod a+x /Library/LaunchDaemons/ae_scan_mac.sh

sudo chmod 644 /Library/LaunchDaemons/ae_scan_mac.plist

3) plist文件的编辑和检查

可使用命令sudo vim ae_scan_mac.plist对文件进行修改。

检查plist文件的语法:

plutil ae_scan_mac.plist

若返回OK则表示文件语法正确。

4) 启动服务并载入plsit文件:

sudo launchctl load /Library/LaunchDaemons/ae_scan_mac.plist

或者重启Mac电脑也可以。

要留意的是,每次修改完plist文件后必须使用以下命令重新载入plist文件又或者重启电脑,plist的配置才会生效。

sudo launchctl unload /Library/LaunchDaemons/ae_scan_mac.plist

sudo launchctl load /Library/LaunchDaemons/ae_scan_mac.plist

接着,检查服务的运行状态:

sudo launchctl list

5) 最后待脚本运行后,就能在AssetExplorer服务器上看到这台客户机的信息了,之后客户机就会自动按照plist文件设置的时间或者重启机器后将机器信息上传到服务器。

两个文件的部署有几个地方需要注意的:

1)文件的权限必须正确,两个文件所有者必须为root,脚本文件必须有执行权限。

2)plist文件的语法必须正确,要留意配置中的程序工作目录和运行参数不要错。可执行:sudo launchctl start /Library/LaunchDaemons/ae_scan_mac.plist

强制运行服务,或者直接运行一下脚本程序,测试一下脚本文件的运行是否正常。

3)每次plist文件修改后必须执行launchctl unload/load卸载并重新载入plist文件,才能使新的配置文件马上生效。

脚本程序和配置文件分别在多台客户机一次性部署后,AssetExplorer就可以自动收集到所有Mac电脑的硬件和软件信息,即使机器配置更改了也无需手动添加,方便了公司的资产管理。Launchd进程的功能比较强大,Apple推荐并已使用该进程替代传统的cron了,大家有兴趣可以再研究一下。

原文为博主所著,并刊登于《网络运维与管理》杂志2014.02.3.4期。

相关文章

来源:【九爱网址导航www.fuzhukm.com】 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    暂无相关资讯
mac执行shell脚本命令 让Mac OS X系统启动时执行脚本的方法