在 CentOS 系统中,你可以使用 systemd
定时器来实现循环执行任务。以下是创建一个循环执行任务的步骤:
- 创建一个 systemd 服务文件:
首先,你需要创建一个 systemd 服务文件,这个文件将包含你希望定时执行的任务。例如,创建一个名为 my-task.service
的文件:
sudo vi /etc/systemd/system/my-task.service
在这个文件中,添加以下内容(根据你的实际需求进行修改):
[Unit] Description=My custom task [Service] Type=oneshot ExecStart=/path/to/your/script.sh
这里,Description
是任务的描述,ExecStart
是要执行的脚本路径。
- 创建一个 systemd 定时器文件:
接下来,创建一个 systemd 定时器文件,例如 my-task.timer
:
sudo vi /etc/systemd/system/my-task.timer
在这个文件中,添加以下内容(根据你的实际需求进行修改):
[Unit] Description=Run my-task.service every hour [Timer] OnCalendar=*-*-* *:00:00 Persistent=true Unit=my-task.service [Install] WantedBy=timers.target
这里,OnCalendar
定义了任务的执行计划。在这个例子中,任务将每小时执行一次。你可以根据需要调整此设置。Persistent
设置为 true
表示即使系统在预定时间关闭,定时器也会在下次启动时立即执行任务。
- 启用并启动定时器:
保存并关闭文件后,运行以下命令启用并启动定时器:
sudo systemctl enable --now my-task.timer
- 检查定时器状态:
要检查定时器的状态,可以使用以下命令:
sudo systemctl list-timers --all
这将显示所有已配置的定时器及其状态。你应该能在列表中看到你的 my-task.timer
。
现在,你的任务将按照预定的时间间隔循环执行。如果你需要修改任务的执行计划,只需更新 my-task.timer
文件中的 OnCalendar
设置,然后运行 sudo systemctl daemon-reload
和 sudo systemctl restart my-task.timer
。