Linux定时任务实现每秒执行一次


Linux定时任务实现每秒执行一次


以下仅为本人工作、学习过程中所接触到的内容,不足之处请多包涵。

crontab定时任务最小周期为1分钟,如果脚本的调度周期需要小于1分钟,crontab就无法直接使用了,不过可以使用以下方法实现调度周期小于1分钟的情况。
date >> /root/result.txt为需要定时执行的命令(当然该语句可以换成其他脚本,如果需要的话),周期为1秒,分为两步实现:
1、循环中实现1分钟执行60次;
2、crontab定时任务每分钟执行一次test.sh脚本
1、2步骤配合使用,就实现了date >> /root/result.txt命令每秒执行一次的需求。

编写/root/test.sh脚本

该方法适用于调度周期能被60整除的情况

#!/bin/bash
step=1
for (( i = 0; i < 60; i = (i+step) )); do
    date >> /root/result.txt
    sleep $step
done

exit 0

配置定时任务

定时任务配置为每隔1分钟执行一次
若不了解定时任务如何添加,可参考Linux之crontab命令

// 编辑crontab
crontab -e
// 添加定时任务
* * * * * sh /root/test.sh
或
*/1 * * * * sh /root/test.sh

实现结果

通过以上步骤,即可实现date >> /root/result.txt命令每秒执行一次,测试结果如下:
Linux定时任务实现每秒执行一次

涉及的其他知识

清空文件内容方式

方式一:

cat /dev/null > file.name

方式二:
这种方式会在文件中写入一个空行

echo "" > file.name

方式三: 在 vi / vim 编辑状态下,使用%d清空

vim file.name
:%d
:wq

追加输入到文件末尾

// > 添加内容,会删除文件中的原来内容
date > /root/result.txt
// >> 在原文件末尾追加内容
date >> /root/result.txt

参考

相关推荐