在 CentOS 系統中,crontab
默認的最小時間單位是分鐘,無法直接實現秒級定時。但是,你可以使用以下兩種方法來實現秒級定時任務:
方法一:使用 systemd
定時器
my-secondly-task.service
的文件,內容如下:[Unit]
Description=My secondly task
[Service]
Type=oneshot
ExecStart=/path/to/your/script.sh
將 /path/to/your/script.sh
替換為你要執行的腳本的實際路徑。
my-secondly-task.timer
的文件,內容如下:[Unit]
Description=Run my secondly task every second
[Timer]
OnBootSec=5s
OnUnitActiveSec=1s
Unit=my-secondly-task.service
[Install]
WantedBy=timers.target
這個定時器文件表示在系統啟動后的 5 秒開始執行任務,并且每 1 秒執行一次。
將這兩個文件保存到 /etc/systemd/system/
目錄下。
重新加載 systemd 配置:
sudo systemctl daemon-reload
sudo systemctl enable --now my-secondly-task.timer
sudo systemctl list-timers --all
方法二:使用 sleep
命令
my-secondly-task.sh
,內容如下:#!/bin/bash
while true; do
/path/to/your/script.sh
sleep 1
done
將 /path/to/your/script.sh
替換為你要執行的腳本的實際路徑。
chmod +x my-secondly-task.sh
./my-secondly-task.sh &
這樣,你的腳本將每秒執行一次。請注意,這種方法可能在系統重啟后失效。為了在系統啟動時自動運行此腳本,你可以將其添加到 /etc/rc.local
文件中(如果存在),或者創建一個 systemd 服務來實現。
總之,雖然 crontab
無法直接實現秒級定時,但通過使用 systemd
定時器或 sleep
命令,你仍然可以實現秒級定時任務。