Linux has a plethora of capabilities that contribute to its reputation as one of the most potent and adaptable operating systems globally.
One such feature is the ability to schedule commands. Imagine a scenario where you urgently need to print a file, but the printer has been occupied all morning. To ensure your document gets printed without fail, even when the printer becomes available, scheduling the print job makes perfect sense.
Also: 5 Linux commands I use to keep my device running smoothly
Enter the at command.
What is the at command?
The at command enables you to schedule the execution of a single command or script at a specific time and date and typically comes pre-installed on most Linux distributions.
Essentially, the at command is used as follows:
at [OPTION(s)] execution_time
Where OPTION(s) can be various options, and execution_time denotes the time and date for the command to run.
Also: How to share folders on your network from Linux
With at, you have the flexibility to schedule command execution at a specific time, a defined number of minutes or hours in the future, on a particular date and time, or even days ahead.
You can even schedule tasks like shutting down your computer at a specified time, which can be convenient if you often forget to power off your PC at night.
How to use at
Let’s continue with our printing example. Command-line printing typically involves the lp command. If your machine is connected to a single printer, specifying the printer to use is not necessary. Additionally, the echo command and pipe will also be utilized. While it may sound intricate, it’s quite straightforward. Here’s how.
To begin, open a terminal window on your Linux distribution and verify the presence of the at command by running the following:
You should see output similar to this:
at version 3.2.5 Please report bugs to the Debian bug tracking system (http://bugs.debian.org/) or contact the maintainers (at@packages.debian.org).
Remember, the syntax of the at command structure is at [OPTION(s)] execution_time, which specifies the command execution structure but doesn’t include the command to be run with at.
Also: The 4 best Linux desktops based on GNOME – and what I love about each
To avoid confusion, we need to construct the command to be executed by at using the echo command. In our example, we’ll print the file zdnet.txt using the lp command, as shown below:
3. Pipe the results of the first command to at
Next, we’ll utilize the pipe to direct the output of the initial command to the at command, like so:
The result of our first command, “lp zdnet.txt,” happens to be the command to print the file zdnet.txt.
Let’s schedule the printing of the zdnet.txt file two hours from the current time with the command at now + 2 hours. Alternatively, you could specify a specific date.
Also: Don’t run these 5 Linux commands – here’s why
For instance, printing the file at 3 pm, five days from the present date, could be achieved with at 3pm + 5 days.
The complete command now looks like this:
echo "lp zdnet.txt" | at now + 2 hours
Running this command will display output indicating when the command will be executed. For example, the output could be:
warning: commands will be executed using /bin/sh job 1 at Mon Oct 21 10:24:00 2024
Upon running the command, you can rest assured that the zdnet.txt file will be printed two hours from the current time.
Also: The first 5 Linux commands every new user should learn
That’s how you leverage the at command in Linux. It is advisable to explore the manual page (man at) for further insights on scheduling specific times and dates using this command.