Time management is a complex art. Fortunately, with the help of technology, you can automate and delegate routine tasks to your computer. Unlike humans, PCs are very good at performing repetitive tasks at precisely set times.
On Linux, you can run repetitive tasks with tools like cron. In addition, you can also schedule and run one-time tasks with the at command.
Installation on Linux
The at command is not part of the standard Linux utilities on most distributions. Luckily, you can easily install it using your package manager, no matter what distribution you're using.
On Debian based systems such as Ubuntu, MX Linux and Pop!_OS you can install by running:
sudo apt install at
If you are using an RPM based distribution like RHEL, Fedora or Rocky Linux, use DNF to install the package:
sudo dnf install at
On Arch-based Linux distributions such as Manjaro, run:
sudo pacman -S at
Starting the atd Task Scheduler Service
Before using the at command, ensure that the atd scheduling daemon is running. This is what the at command uses to execute scheduled jobs.
sudo systemctl status atd
If the atd service is not running, you can start it using:
sudo systemctl start atd
Linux task scheduling with at
Here's how you can schedule a one-time job to run at a specific point in time in the future using at:
command | at time_stamp
For example, we can schedule a task to list the contents of your current directory with the ls command and write the output to a file after one minute.
First go to the user's home folder using the cd command:
cd ~
Then run the following command to schedule the task:
ls > list_items.txt | at now + 1 minutes
The output will indicate that your task is scheduled. After the time has elapsed, you can list the contents of your directory and a new text file should appear with the contents of the directory.
If you want to run the command tomorrow at noon, run:
ls > list_items.txt | at noon tomorrow
To specify a more precise time and date, use the MMDDHHMM YYYY date format. For example, to execute the previous command at 13:00. On December 25, 2023, you can run the command:
ls > list_items.txt | at 12251300 2023
The at command has much more advanced features that allow you to run certain commands at a precise time. Take a look at its man pages for more command options:
man at
Linux scheduling scripts using at
In addition to running individual commands, you can also use the at command to schedule scripts to run at specified times.
Let's say you have a script named disk_usage.sh located in your home folder. The script simply outputs the hard drive usage to a text file. Here is the scenario:
#!/bin/bash df -h > disk_usage.txt
To execute this script in thirty minutes, you can simply run the following command:
at now + 30 minutes -f ~/disk_usage.sh
Make sure your script is executable by setting it to the appropriate mode. To do this, you can use the chmod command:
sudo chmod +x disk_usage.sh
Managing Pending Tasks in Linux
You can view pending tasks using the following command:
atq
To remove a pending task, use the following command format:
atrm task_number
For example, to delete task number 12, use:
atrm 12
Automate repetitive tasks in Linux with at
The at command is a powerful and versatile tool for performing one-time tasks on your Linux PC. Besides at, you can use crontab to automate all kinds of tasks, from the simple to the complex.
2573800cookie-checkHow to schedule one-time jobs on Linux with atno
similar
Publication author
offline 2 weeks
Comments: 6Publications: 1196Registration: 29-04-2020
Инструкции,Программы
#schedule #onetime #jobs #Linux