Conveniently schedule a command to run later?

You can use the at command. The at execute commands at a later time. The at utility shall read commands from standard input and group them together as an at-job, to be executed at a later time.

Usually, at is installed by default in Ubuntu, but if your release doesn't include it, install via:

sudo apt-get install at

For more information, options, examples, and others, see the manpage in man 1 at.

Example of a relative time specification (note the space between + and the duration):

at now + 8 hours -f ~/myscript.sh

You can also use convenient shorthands, like tomorrow or noon, as in

echo "tweet fore" | at teatime 

Note: This will run the command to the left of the pipe immediately - and its output (which is piped to at) will be run by at at the scheduled time. So, the above command schedules tweet fore to be run at teatime.

The example also demonstrates how you can pipe actions into at. at -c is the way you can examine scheduled actions, which you can conveniently list with their number, as with:

at -c 3

Use the Gnome-based GUI for cron, at, and the like:

The introduction of the CronHowto suggests using the gnome-schedule gui, which is much nicer than typing all the garbage into the terminal (esp. for "average" Ubuntu users who are not "power" *nix/bsd users.)

Run it by using the Unity Dash (or other applications menu) to look for Scheduled Tasks or running gnome-schedule.

On Gnome-based Ubuntu systems Gnome Scheduled tasks tool (from the gnome-schedule package) in Applications --> System Tools provides a graphical interface with prompting for using Cron. The project website is at http://gnome-schedule.sourceforge.net/; the software is installable from the Software Center or by typing

sudo apt-get install gnome-schedule

in a terminal.

Using gnome-schedule, for a script in your home directory, a new "at" command would be set up using this type of window:

enter image description here


Yes, you can set a cron job.

For example if now the time is 14:39:00 and today is friday, 30 august, you can add the following cron job (to be executed after 8 hours) in your crontab file using crontab -e command:

39 22 30 8 5  /path/to/mycommand.sh

More about:

  • https://help.ubuntu.com/community/CronHowto
  • http://en.wikipedia.org/wiki/Cron