在CentOS系统中,定时任务可以通过systemd-timer
或cron
来实现。systemd-timer
是CentOS 7及更高版本中推荐的定时任务解决方案,它提供了比cron
更强大的功能和更好的集成。以下是一些使用systemd-timer
的技巧:
创建定时器单元文件:
使用sudo systemctl edit --full mytimer.timer
命令创建一个新的定时器单元文件。这将会在/etc/systemd/system/
目录下创建一个名为mytimer.timer
的文件。
编辑定时器单元文件: 在创建的定时器单元文件中,你可以设置定时器的触发时间和行为。例如:
[Unit]
Description=Run myservice.service every hour
[Timer]
OnCalendar=*-*-* *:00:00
Persistent=true
[Install]
WantedBy=timers.target
上面的配置表示每小时的第0分钟执行myservice.service
服务。
重新加载systemd配置:
在编辑完定时器单元文件后,使用sudo systemctl daemon-reload
命令重新加载systemd配置。
启动定时器:
使用sudo systemctl start mytimer.timer
命令启动定时器。
停止定时器:
使用sudo systemctl stop mytimer.timer
命令停止定时器。
启用定时器开机自启:
使用sudo systemctl enable mytimer.timer
命令启用定时器开机自启。
禁用定时器开机自启:
使用sudo systemctl disable mytimer.timer
命令禁用定时器开机自启。
查看定时器状态:
使用sudo systemctl status mytimer.timer
命令查看定时器的状态。
查看所有定时器:
使用systemctl list-timers --all
命令查看所有定时器。
at
命令虽然systemd-timer
是更现代的选择,但at
命令仍然在一些CentOS版本中使用。
安装at服务:
使用sudo yum install at
命令安装at服务。
启动并启用at服务:
使用sudo systemctl start atd
和sudo systemctl enable atd
命令启动并启用at服务。
提交任务到at队列:
使用echo "your-command-here" | at now + 1 hour
命令提交任务到at队列。
查看待处理任务:
使用atq
命令查看待处理任务。
删除待处理任务:
使用atrm <job-id>
命令删除待处理任务。
systemd-timer
提供了比cron
更强大的功能和更好的集成。/etc/systemd/system/
或/lib/systemd/system/
目录下。systemd
。通过这些技巧,你可以在CentOS系统中有效地管理和调度定时任务。