Linux · System Tools
at
A simple command-line utility to schedule one-time jobs to run at a specific future time, replacing Windows Task Scheduler for basic tasks.
- License
- GPL-2.0-or-later
- Latest version
- 3.2.5
What is at?
at is a classic Unix utility that has been part of Linux distributions for decades. It allows users to queue a single command or script to execute at a specified date and time. Unlike cron, which handles recurring tasks, at is designed for one-off events. It is stable, lightweight, and relies on the atd daemon to manage the queue. Its simplicity means it has few dependencies and works reliably across all major distributions like Debian, Fedora, and Arch.
This tool is ideal for system administrators and advanced users who need to run maintenance scripts, send delayed emails, or trigger backups without setting up a full cron job. It is not intended for general desktop users who prefer graphical interfaces. If you are comfortable with the terminal and understand basic shell scripting, at is the standard choice for time-based execution on Linux.
Compared to Windows Task Scheduler, at is far more limited but also much simpler. Task Scheduler offers a GUI, complex triggers, and user-specific permissions. at runs via the command line, uses a basic queue system, and typically executes jobs as root or the submitting user. It lacks the graphical complexity of the Windows tool, which can be a pro for clarity but a con for discoverability. There is no drag-and-drop interface; you type the command and the time.
Best for: Users who need to run a single maintenance script or command at a specific future time without the complexity of cron.
Key features of at
- Schedule one-time commands to run at a specific time
- Supports relative time specifications like 'now + 1 hour'
- Can execute shell scripts or direct commands
- Jobs are stored in a queue managed by the atd daemon
- Output can be mailed to the user or redirected to a file
- Works with absolute dates and times
- Lightweight with minimal system resource usage
- Pre-installed on most standard Linux distributions
Pros
- Extremely simple and easy to use for basic tasks
- No GUI overhead, runs entirely from the terminal
- Highly reliable and stable across different Linux versions
- Low resource consumption compared to graphical schedulers
Cons
- No graphical user interface, requires command-line knowledge
- Only supports one-time jobs, not recurring schedules
- Limited job management features compared to Task Scheduler
- Output handling is basic, often requiring manual redirection
Windows programs at replaces
How to install at on Linux
sudo apt install atsudo apt install atsudo dnf install atsudo pacman -S atsudo zypper install atTips for Windows users
Coming from Windows Task Scheduler, you will notice the lack of a GUI. Instead of creating a task via a wizard, you type 'at 14:00' followed by your command. To run a script, you might type 'at now + 5 minutes' and then paste the script content. Remember that at jobs often run with a minimal environment, so use absolute paths for commands and scripts. You can check the queue with 'atq' and remove jobs with 'atrm'. Unlike Task Scheduler, at does not have complex triggers or conditions; it is strictly time-based.
at: frequently asked questions
How do I check what jobs are currently scheduled with at?
Use the command 'atq' to list all pending jobs. Each job is assigned a numeric ID that you can use to remove it later.
Can I use at to run recurring tasks?
No, at is designed for one-time jobs only. For recurring schedules, you should use cron or systemd timers instead.
Why did my at job not run?
Check if the atd daemon is running with 'systemctl status atd'. Also ensure the time specified is in the future and that the command uses absolute paths.
How do I remove a scheduled at job?
Use the 'atrm' command followed by the job ID. For example, 'atrm 1' removes job number 1.
Updated