How to Schedule Tasks on Linux with Cron and anacron
Aug 01, 2025 am 06:11 AMcron is used for precise scheduling on always-on systems, while anacron ensures periodic tasks run on systems that aren't continuously powered, such as laptops; 1. Use cron for exact timing (e.g., 3 AM daily) via crontab -e with syntax MIN HOUR DOM MON DOW COMMAND; 2. Use anacron for daily, weekly, or monthly jobs on intermittent systems via /etc/anacrontab with period, delay, job-id, and command; 3. System-wide cron jobs can be placed in /etc/cron.daily, /etc/cron.weekly, or /etc/cron.monthly; 4. anacron runs missed jobs after system startup based on recorded last execution in /var/spool/anacron/; 5. Ensure scripts use full paths and redirect output to logs to avoid errors and email spam; 6. Most desktops run anacron hourly through cron to handle missed tasks; always test scripts manually before scheduling; use cron for servers and anacron for laptops to ensure reliability, and avoid duplicating jobs across both systems.
Scheduling tasks on Linux is essential for automation—whether it's running backups, cleaning logs, or updating systems. Two of the most commonly used tools for this are cron and anacron. While they serve similar purposes, they work differently and are suited for different use cases.

Here’s how to use both effectively.
What’s the Difference Between cron and anacron?
- cron runs scheduled tasks at specific times, assuming your system is always on. It checks every minute and runs jobs if the scheduled time matches.
- anacron is designed for systems that aren’t running 24/7, like laptops. It runs jobs based on frequency (daily, weekly, monthly) and ensures missed jobs run when the system is back on.
So:
Use cron for servers or desktops that are always on.
Use anacron for laptops or machines that get turned off or suspended.

Using cron to Schedule Tasks
Cron uses a daemon (crond
) that runs in the background and checks special configuration files called crontabs.
1. Edit Your Crontab
Run:

crontab -e
This opens your personal crontab file in the default editor.
2. Crontab Syntax
Each line follows this format:
MIN HOUR DOM MON DOW COMMAND
- MIN: Minute (0–59)
- HOUR: Hour (0–23)
- DOM: Day of Month (1–31)
- MON: Month (1–12)
- DOW: Day of Week (0–7, where both 0 and 7 = Sunday)
Example: Run a script every day at 3:30 AM
30 3 * * * /home/user/backup.sh
Other examples:
# Run every Monday at 6:15 AM 15 6 * * 1 /scripts/cleanup.sh # Run every 15 minutes (use */15) */15 * * * * /scripts/check-status.sh # Run at midnight on the 1st of every month 0 0 1 * * /scripts/monthly-report.sh
3. System-Wide Cron Jobs
You can also place scripts in:
/etc/cron.daily/
– runs once per day/etc/cron.weekly/
– runs once per week/etc/cron.monthly/
– runs once per month
These are automatically handled by the cron
daemon if the system is up.
Note: These rely on the system being on at the scheduled time.
Using anacron for Irregularly Running Systems
anacron doesn’t assume the system is always on. Instead of exact times, it uses intervals (in days) and runs jobs when the system boots or at scheduled checks.
1. anacron Syntax
anacron reads from /etc/anacrontab
. Example:
# period delay job-id command 1 5 daily-job /home/user/daily-script.sh 7 10 weekly-job /home/user/weekly-script.sh @monthly 15 monthly-job /home/user/monthly-script.sh
- period: number of days between runs (1 = daily, 7 = weekly).
@monthly
is special. - delay: minutes to wait after system startup before running (to avoid slowing boot)
- job-id: name for logging
- command: script or command to run
2. How anacron Works
- When the system starts, anacron checks its job schedule.
- If a job’s period has passed since the last run (recorded in
/var/spool/anacron/
), it runs the job after the delay. - So if your laptop was off for 3 days, the daily job runs once when you turn it back on.
3. anacron Is Usually Already Running
Most desktop distributions run anacron via cron
. Check /etc/crontab
or /etc/cron.d/anacron
:
# Run anacron every hour (if system is on) 25 * * * * root test -x /usr/sbin/anacron && /usr/sbin/anacron -s
This line ensures anacron gets a chance to run missed jobs hourly.
Tips and Best Practices
Always use full paths in cron/anacron scripts. The environment is minimal.
# Instead of just: python script.py # Use: /usr/bin/python /home/user/scripts/script.py
Redirect output to avoid email spam or log errors:
*/30 * * * * /scripts/monitor.sh >> /var/log/monitor.log 2>&1
Test your scripts manually before scheduling.
Use anacron for laptops, even if you also use cron. It handles missed jobs gracefully.
Don’t mix cron and anacron unnecessarily. For example, don’t put the same job in both.
- Use cron for precise scheduling on always-on systems.
- Use anacron for periodic jobs on machines that get turned off.
- Combine both if needed: cron can trigger anacron, and system directories like
/etc/cron.daily
often use anacron under the hood on desktops.
Summary
Basically, cron says “run at 3 AM”, while anacron says “run once every day, whenever the system is up.”
Pick the right tool based on your system’s uptime.
The above is the detailed content of How to Schedule Tasks on Linux with Cron and anacron. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

To tune MySQL into a Chinese interface, it can be implemented through MySQLWorkbench or command line tools. 1) In MySQLWorkbench, open "Preferences", select the "Appearance" tab, and then select "Chinese(Simplified)" in the "Language" drop-down menu, and restart. 2) When using command line tools, set the operating system locale variables, such as using "exportLANG=zh_CN.UTF-8" on Linux or macOS, and then run the mysql client.

Linux and Windows have their own advantages and disadvantages in CPU and memory usage: 1) Linux uses time slice-based scheduling algorithms to ensure fairness and efficiency; Windows uses priority scheduling, which may cause low-priority processes to wait. 2) Linux manages memory through paging and switching mechanisms to reduce fragmentation; Windows tends to pre-allocate and dynamic adjustment, and efficiency may fluctuate.

Linux's cost of ownership is usually lower than Windows. 1) Linux does not require license fees, saving a lot of costs, while Windows requires purchasing a license. 2) Linux has low hardware requirements and can extend the service life of the device. 3) The Linux community provides free support to reduce maintenance costs. 4) Linux is highly secure and reduces productivity losses. 5) The Linux learning curve is steep, but Windows is easier to use. The choice should be based on specific needs and budget.

LinuxoftenoutperformsWindowsinI/Operformanceduetoitscustomizablekernelandfilesystems,whileWindowsoffersmoreuniformperformanceacrosshardware.1)LinuxexcelswithcustomizableI/OschedulerslikeCFQandDeadline,enhancingperformanceinhigh-throughputapplications

The key to installing dual systems in Linux and Windows is partitioning and boot settings. 1. Preparation includes backing up data and compressing existing partitions to make space; 2. Use Ventoy or Rufus to make Linux boot USB disk, recommend Ubuntu; 3. Select "Coexist with other systems" or manually partition during installation (/at least 20GB, /home remaining space, swap optional); 4. Check the installation of third-party drivers to avoid hardware problems; 5. If you do not enter the Grub boot menu after installation, you can use boot-repair to repair the boot or adjust the BIOS startup sequence. As long as the steps are clear and the operation is done properly, the whole process is not complicated.

The key to enabling EPEL repository is to select the correct installation method according to the system version. First, confirm the system type and version, and use the command cat/etc/os-release to obtain information; second, enable EPEL through dnfinstallepel-release on CentOS/RockyLinux, and the 8 and 9 version commands are the same; third, you need to manually download the corresponding version of the .repo file and install it on RHEL; fourth, you can re-import the GPG key when encountering problems. Note that the old version may not be supported, and you can also consider enabling epel-next to obtain the test package. After completing the above steps, use dnfrepolist to verify that the EPEL repository is successfully added.

Linux usually performs better in web server performance, mainly due to its advantages in kernel optimization, resource management and open source ecosystem. 1) After years of optimization of the Linux kernel, mechanisms such as epoll and kqueue make it more efficient in handling high concurrent requests. 2) Linux provides fine-grained resource management tools such as cgroups. 3) The open source community continuously optimizes Linux performance, and many high-performance web servers such as Nginx are developed on Linux. By contrast, Windows performs well when handling ASP.NET applications and provides better development tools and commercial support.

Newbie users should first clarify their usage requirements when choosing a Linux distribution. 1. Choose Ubuntu or LinuxMint for daily use; programming and development are suitable for Manjaro or Fedora; use Lubuntu and other lightweight systems for old devices; recommend CentOSStream or Debian to learn the underlying principles. 2. Stability is preferred for UbuntuLTS or Debian; you can choose Arch or Manjaro to pursue new features. 3. In terms of community support, Ubuntu and LinuxMint are rich in resources, and Arch documents are technically oriented. 4. In terms of installation difficulty, Ubuntu and LinuxMint are relatively simple, and Arch is suitable for those with basic needs. It is recommended to try it first and then decide.
