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
命令每秒执行一次,测试结果如下:
涉及的其他知识
清空文件内容方式
方式一:
cat /dev/null > file.name
方式二:
这种方式会在文件中写入一个空行
echo "" > file.name
方式三: 在 vi / vim 编辑状态下,使用%d
清空
vim file.name
:%d
:wq
追加输入到文件末尾
// > 添加内容,会删除文件中的原来内容
date > /root/result.txt
// >> 在原文件末尾追加内容
date >> /root/result.txt
参考