Mac OS X Lion 上的 Crontab 脚本不再起作用

Mac OS X Lion 上的 Crontab 脚本不再起作用

我在 cron 任务方面遇到了问题。以前这个脚本在 Mac OS X 10.6 服务器上运行良好,但是当我在 Lion(客户端)上初始化它时,这个脚本停止工作。

基本上,该.bat文件调用一个jar文件(调用一个mysqldump命令循环)来备份多台服务器上的多个数据库,并且如果由 shell 启动,则可以完美运行。

cd /Users/nameoftheuser/Desktop/backupper 
/usr/bin/java -cp .:Backupper.jar:lib/mail.jar backupper.Main "/Users/nameoftheuser/Desktop/backupper/listasiti.txt" "/Users/nameofthe/Desktop/backupper/config.properties

但是如果 cron 启动相同的.bat文件,则生成的数据库备份为 0 字节。

cron 条目是:

0     0     sh /Users/path/to/file.bat

我认为问题在于 cron 无法以 身份运行root。或者还有什么其他原因?

答案1

我会按照 OS X 的方式使用 launchd 而不是 cron。您可以通过编写 LaunchAgent 来实现这一点。它基本上是 /Library/LaunchAgents 或 ~/Library/LaunchAgents 中的一个 .plist,它告诉 launchd 要运行什么脚本以及运行该脚本的触发器应该是什么。

launchd 允许您控制脚本是否应由登录用户或 root 运行。

Lingon.app是开始使用和管理 LaunchAgents 的好方法。

Apple 开发者连接手册页也可能有帮助。

相关内容