search
HomeOperation and MaintenanceLinux Operation and MaintenanceHow to make Crontab execute a task every second

How to make Crontab execute a task every second

How to make Crontab execute a task every second

Crontab is a scheduled scheduling configuration file under Linux. Through it, we can make system programs, scripts, commands, and tasks run at set times. , interval and cycle operation. The smallest time granularity in Crontab is minutes. In other words, through Crontab configuration, we can execute the target task at most once per minute. More frequent execution is not possible and we can only use other methods.

Related learning recommendations: linux video tutorial

For example, what should you do if you want a program to be executed every 30 seconds?

There are still ways to work around it. One idea is to add two configurations in Crontab, one is for normal scheduling and is executed once every minute, and the other is to wait for 30 seconds before executing.

# Need these to run on 30-sec boundaries, keep commands in sync.
* * * * *              /path/to/executable param1 param2
* * * * * ( sleep 30 ; /path/to/executable param1 param2 )

This method feels a bit stiff and weird, but it does work. This method can actually be abbreviated into one line:

* * * * * /bin/bash -l -c "/path/to/executable; sleep 30 ; /path/to/executable"

Another method is to use the watch command:

$ watch --interval .30 script_to_run_every_30_sec.sh

But watch is a command line tool, we can use nohup command lets it run in the background.

SystemD timer

If the Linux system we use has SystemD, we can use the SystemD timer to schedule programs at any time granularity, which can theoretically be as small as the nanosecond level - of course, It's kind of crazy to do that. In short, its flexibility in task scheduling is much higher than Cron - there is no need to use such a crappy solution as sleep.

Compared with crontab that completes the configuration in one line, establishing a SystemD timer is slightly more complicated, but in order to better implement scheduling tasks with a granularity smaller than 'per minute', this method is worth trying.

The implementation principle of SystemD timer is simply two parts: a system service and a SystemD timer. SystemD timer performs scheduling, and tasks are written in service.

Here is a simple example. The goal is to have the system logger output "Hello World" every ten seconds;

/etc/systemd/system/helloworld.service

[Unit]
Description=Say Hello
[Service]
ExecStart=/usr/bin/logger -i Hello World

/etc/systemd/system/helloworld.timer

[Unit]
Description=Say Hello every 10 seconds
[Timer]
OnBootSec=10
OnUnitActiveSec=10
AccuracySec=1ms
[Install]
WantedBy=timers.targethelloworld.timer里并没有声明service的名称,那它和service是如何关联的呢?没错,因为它们的名称相同,都是helloworld。

If you want the entire system to use this timer, these two files need to be placed in/etc/systemd/system. If you want to use it for a certain user, place it in ~/.config/systemd/user. If you want this timer to run immediately, you need to execute the following command: The

–now

tag in

systemctl enable --now helloworld.timer
causes the timer to execute immediately. Otherwise, the operation will only be triggered after the system is restarted or the user logs in.

[Timer]The functions of each field in the section are as follows:

  • OnBootSec – How many seconds after the system starts to start scheduling
  • OnUnitActiveSec – The time interval for repeatedly scheduling related services. It is this line of configuration that determines the scheduled actions like cron job.
  • AccuracySec – Timer accuracy. The default is one minute, very similar to cron. It can be required to be higher, but the increased precision will bring more system consumption and wake up the CPU more frequently. The above configuration says 1ms, which is obviously not a smart decision. Usually we can set it to 1 (1 second), which is enough for our timer accuracy requirements of less than 1 minute time granularity. Because of this, we will see that the output of the "Hello World" message is often delayed by about 1 second when the actual program is running. If you don't think the delay of this second or so is a problem, this is how it should be set.

You will find that SystemD timer and Crontab timer are not the same - the task scheduling period is not set according to the year, month, day, hour and minute period, it is based on our first time It starts at the time it is executed, appending one cycle of time each time. If we like the time configuration method like Crontab, SystemD timer also supports it, then we need to remove OnBootSec and OnUnitActiveSec and replace them with OnCalendar, as follows is an example:

OnCalendar=*-*-* *:*:00,10,20,30,40,50

Finally, by default, the SystemD timer and service are associated with the same name. If you like, you can also configure it in [Timer] Pair by specifying the Unit field.

The above methods can all implement scheduled scheduling tasks with sub-minute granularity. Each has its advantages. SystemD timers look more formal, but a little more complex. Crontab sleepAlthough the method is awkward, it is not incompetent for some small tasks.

The above is the detailed content of How to make Crontab execute a task every second. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
The Building Blocks of Linux: Key Components ExplainedThe Building Blocks of Linux: Key Components ExplainedApr 30, 2025 am 12:26 AM

The core components of the Linux system include the kernel, file system, and user space. 1. The kernel manages hardware resources and provides basic services. 2. The file system is responsible for data storage and organization. 3. Run user programs and services in the user space.

Using Maintenance Mode: Troubleshooting and Repairing LinuxUsing Maintenance Mode: Troubleshooting and Repairing LinuxApr 29, 2025 am 12:28 AM

Maintenance mode is a special operating level entered in Linux systems through single-user mode or rescue mode, and is used for system maintenance and repair. 1. Enter maintenance mode and use the command "sudosystemctlisolaterscue.target". 2. In maintenance mode, you can check and repair the file system and use the command "fsck/dev/sda1". 3. Advanced usage includes resetting the root user password, mounting the file system in read and write mode and editing the password file.

Linux Maintenance Mode: Understanding the PurposeLinux Maintenance Mode: Understanding the PurposeApr 28, 2025 am 12:01 AM

Maintenance mode is used for system maintenance and repair, allowing administrators to work in a simplified environment. 1. System Repair: Repair corrupt file system and boot loader. 2. Password reset: reset the root user password. 3. Package management: Install, update or delete software packages. By modifying the GRUB configuration or entering maintenance mode with specific keys, you can safely exit after performing maintenance tasks.

Linux Operations: Networking and Network ConfigurationLinux Operations: Networking and Network ConfigurationApr 27, 2025 am 12:09 AM

Linux network configuration can be completed through the following steps: 1. Configure the network interface, use the ip command to temporarily set or edit the configuration file persistence settings. 2. Set up a static IP, suitable for devices that require a fixed IP. 3. Manage the firewall and use the iptables or firewalld tools to control network traffic.

Maintenance Mode in Linux: A System Administrator's GuideMaintenance Mode in Linux: A System Administrator's GuideApr 26, 2025 am 12:20 AM

Maintenance mode plays a key role in Linux system management, helping to repair, upgrade and configuration changes. 1. Enter maintenance mode. You can select it through the GRUB menu or use the command "sudosystemctlisolaterscue.target". 2. In maintenance mode, you can perform file system repair and system update operations. 3. Advanced usage includes tasks such as resetting the root password. 4. Common errors such as not being able to enter maintenance mode or mount the file system, can be fixed by checking the GRUB configuration and using the fsck command.

Maintenance Mode in Linux: When and Why to Use ItMaintenance Mode in Linux: When and Why to Use ItApr 25, 2025 am 12:15 AM

The timing and reasons for using Linux maintenance mode: 1) When the system starts up, 2) When performing major system updates or upgrades, 3) When performing file system maintenance. Maintenance mode provides a safe and controlled environment, ensuring operational safety and efficiency, reducing impact on users, and enhancing system security.

Linux: Essential Commands and OperationsLinux: Essential Commands and OperationsApr 24, 2025 am 12:20 AM

Indispensable commands in Linux include: 1.ls: list directory contents; 2.cd: change working directory; 3.mkdir: create a new directory; 4.rm: delete file or directory; 5.cp: copy file or directory; 6.mv: move or rename file or directory. These commands help users manage files and systems efficiently by interacting with the kernel.

Linux Operations: Managing Files, Directories, and PermissionsLinux Operations: Managing Files, Directories, and PermissionsApr 23, 2025 am 12:19 AM

In Linux, file and directory management uses ls, cd, mkdir, rm, cp, mv commands, and permission management uses chmod, chown, and chgrp commands. 1. File and directory management commands such as ls-l list detailed information, mkdir-p recursively create directories. 2. Permission management commands such as chmod755file set file permissions, chownuserfile changes file owner, and chgrpgroupfile changes file group. These commands are based on file system structure and user and group systems, and operate and control through system calls and metadata.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools