跳到主要内容

Linux 定时任务管理

cron 是 Linux 系统中常用的任务规划软件,cron 是一个守护进程,用户可以通过 crontab 命令要求系统在特定的时间执行特定的任务。适用于需要周期性自动化执行的工作。

定时喂狗

在一些设备中,由于下位机(例如 STM32)可能实现了对上位机(例如 i.MX8)的看门狗监控功能,若长期无通信反馈,则会重启 Linux 系统。因此,Linux 系统需要进行喂狗,将喂狗任务添加到 cron 定时任务是一个不错的主意!

编辑 cron 任务规划列表:

crontab -e

添加一行任务:

* * * * *    echo 1 > /dev/dev_reboot

表示每分钟往 /dev/dev_reboot 设备节点写一次数据。

定时清缓存

假设有脚本 /opt/recycle_service.sh,内容如下:

#!/bin/sh
sync
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches

编辑 cron 任务规划列表,添加一行任务,每隔 5 个小时清理一次缓存。

0 */5 * * *    /usr/recycle_service.sh

定时同步时间

K37X 作为一款数采仪,时间的准确性十分重要,因此可以设置一个定时任务,每小时的第 30 分钟同步一次网络时间。

30 * * * *    /usr/bin/ntpdate-sync silent

定时校准 RTC

有时候,RTC 可能因为电池电压过低等原因无法保证实时时钟的正确性,因此定期校准 RTC 时间是个好习惯。例如,设置每天 0 点到 23 点,每隔 12 小时回写一次 RTC 时间。

00 0-23/12 * * * /sbin/hwclock --utc --systohc