How can I make my Mac (running the most recent OS) do a task automatically once a day? For example, I'd like to have it automatically download a copy of this open source algebraic geometry textbook once a day. I have a feeling that some combination of wget and cron should work, but, after googling and reading the cron documentation, I just couldn't get it to work right.
I think in OS X you should use
launchctl for "cron jobs".
But otherwise your task should be easy to do with a cronjob
sudo crontab -e
55 23 * * * wget http://www.math.columbia.edu/algebraic_geometry/stacks-git/book.pdf
This should run everyday at 23:55
You should specify the output location of WGET with
You may use Cronnix which is a free graphical interface for cron :
If you're finding the command line syntax (etc) too confusing/arcane, you might lok at GUI tool for viewing/editing/creating these jobs.
In the past I've used Lingon, which has been made available on the Mac App Store now too. I don't need to use it very often, but it's very useful when I do!
A more elegant solution (than cron) is to use iCal notifications + Applescript.
First, launch AppleScript Editor (located under /Application/Utilities) and paste the following code:
set the destination_file to ("~/Downloads/book.pdf") set the contentLink to "http://www.math.columbia.edu/algebraic_geometry/stacks-git/book.pdf" tell application "URL Access Scripting" download contentLink to destination_file replacing yes end tell
Save the script and quit applescript editor.
Open your iCal and create a new event for today, setting the time you want, select "repeat: Every day" and as an alarm "Run script" and select your applescript.
If you want to notified for every download, you may add another alarm with a "Message with Sound", "on date".
I recommend Macaroni. Its advantage is that when you set a job to run once a day, it runs whenever your computer is on, regardless of the time. So you won't miss a job because the computer was off at the specified time.
Macaroni is a tool which handles regular maintenance for Mac OS X, including the Mac OS X repair privileges process as well as Unix-style maintenance. You could do this yourself, but don't you have more interesting things to do with your time?