Wednesday, August 24, 2005

cron jobs with launchd


In this post, I described ClamXav and how it will install a cron job to scan files as well as updating the virus definitions.  In Mac OS X 10.4, Apple has created launchd to replace crond, init, and xinitd.  So I wanted to replace with the cron jobs with Launch Actions.


Here are the plist files that I have created to replace the cron jobs.  I created these plist files with Launchd Editor, I wasn't able to get the scripts to work when I created them with Property List Editor


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>GroupName</key>
<string>clamav</string>
<key>Label</key>
<string>com.pwestbro.clamXavUpdate</string>
<key>LowPriorityIO</key>
<true/>
<key>Nice</key>
<integer>1</integer>
<key>Program</key>
<string>/usr/local/clamXav/bin/freshclam</string>
<key>ProgramArguments</key>
<array>
<string>--quiet</string>
<string>--log="/usr/local/clamXav/share/clamav/freshclam.log"</string>
</array>
<key>ServiceDescription</key>
<string>ClamXav Update run</string>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>11</integer>
<key>Minute</key>
<integer>30</integer>
</dict>
<key>UserName</key>
<string>clamav</string>
</dict>
</plist>


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.pwestbro.clamXav</string>
<key>LowPriorityIO</key>
<true/>
<key>Nice</key>
<integer>1</integer>
<key>Program</key>
<string>/usr/local/clamXav/bin/clamscan</string>
<key>ProgramArguments</key>
<array>
<string>-r</string>
<string>--log="/Users/pwestbro/Library/Logs/clamXav-scan.log"</string>
<string>--exclude=sit$</string>
<string>--exclude=sitx$</string>
<string>--exclude=dmg$</string>
<string>/Users/pwestbro/Documents</string>
</array>
<key>ServiceDescription</key>
<string>ClamXav scan run</string>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>12</integer>
<key>Minute</key>
<integer>15</integer>
</dict>
</dict>
</plist>

[via TUAW]


Technorati Tags: , ,