在 CentOS 系统中,你可以使用 systemd 的 timer 单元来实现一次性定时任务
systemd 服务文件。首先,你需要创建一个服务文件,该文件定义了你想要执行的任务。例如,创建一个名为 /etc/systemd/system/my-service.service 的文件,内容如下:[Unit]
Description=My custom service
[Service]
Type=oneshot
ExecStart=/usr/bin/echo "Hello, World!"
这个服务文件定义了一个名为 my-service.service 的服务,它将在启动时执行一次 /usr/bin/echo "Hello, World!" 命令。
systemd 定时器文件。接下来,你需要创建一个定时器文件,该文件定义了何时启动服务。例如,创建一个名为 /etc/systemd/system/my-service.timer 的文件,内容如下:[Unit]
Description=Run my-service.service once at a specific time
[Timer]
OnCalendar=2022-01-01T00:00:00
Persistent=false
[Install]
WantedBy=timers.target
这个定时器文件定义了一个名为 my-service.timer 的定时器,它将在指定的时间(例如,2022年1月1日00:00:00)启动 my-service.service 服务。Persistent=false 表示如果定时器在指定时间之后启动,它将不会再次触发。
sudo systemctl enable --now my-service.timer
这将启用 my-service.timer 定时器,并立即启动它。你可以使用 systemctl list-timers 命令查看定时器的状态。
sudo systemctl stop my-service.timer
sudo systemctl disable my-service.timer
这将停止并禁用 my-service.timer 定时器。