目录
CentOS7中定时任务的使用你知道几种
使用 crontab 命令来设置定时脚本。
- 打开终端,输入以下命令来编辑 crontab 文件:
crontab -e
- 在编辑器中添加定时任务,格式如下:
* * * * * command
其中,五个星号分别代表分钟、小时、日、月、周,可以使用以下符号:
*
:代表任意值,
:代表多个值-
:代表一个范围/
:代表间隔时间
例如,以下命令表示每天凌晨 1 点执行一次 /root/test.sh
脚本:
0 1 * * * /root/test.sh
- 保存并退出编辑器。
注意事项:
- crontab 文件中每行只能有一个命令。
- crontab 文件中可以使用
#
开头的注释。 - crontab 文件中的命令执行时的环境变量可能与用户登录时的环境变量不同,需要注意。
- crontab 文件中的命令执行时的工作目录可能与用户登录时的工作目录不同,需要注意。
使用systemd timer:systemd timer是systemd的一个组件,可以用来设置定时任务。可以使用以下命令创建一个systemd timer:
- 创建一个 service 文件,用于定义要执行的任务。例如,创建一个名为
mytask.service
的文件,内容如下:
[Unit]
Description=My Task
[Service]
Type=simple
ExecStart=/path/to/my/script.sh
这个文件定义了一个名为 mytask
的服务,它会执行 /path/to/my/script.sh
脚本。
- 创建一个 timer 文件,用于定义定时执行任务的规则。例如,创建一个名为
mytask.timer
的文件,内容如下:
[Unit]
Description=My Task Timer
[Timer]
OnCalendar=*-*-* 00:00:00
Unit=mytask.service
[Install]
WantedBy=timers.target
这个文件定义了一个名为 mytask
的 timer,它会在每天的 00:00:00 执行 mytask.service
服务。
-
将 service 和 timer 文件放到
/etc/systemd/system/
目录下。 -
启用并启动 timer:
systemctl enable mytask.timer
systemctl start mytask.timer
这样,mytask
服务就会在每天的 00:00:00 自动执行一次了。
使用at命令:at命令可以在指定时间执行一次命令或脚本。可以使用以下命令打开at编辑器:
AT命令是一种在Linux系统中执行一次性任务的命令。在CentOS 7中,可以使用以下步骤使用AT命令:
- 安装at命令
在终端中输入以下命令安装at命令:
sudo yum install at
- 启动atd服务
在终端中输入以下命令启动atd服务:
sudo systemctl start atd
- 使用at命令
在终端中输入以下命令使用at命令:
at [时间] [命令]
其中,[时间]是任务执行的时间,可以使用以下格式:
- HH:MM:表示当天的某个时间点,例如“at 10:30”表示在当天的10:30执行任务。
- now:表示立即执行任务。
- +[时间]:表示从现在开始的一段时间后执行任务,例如“at +1 hour”表示在1小时后执行任务。
[命令]是要执行的命令,例如:
at 10:30 ls -l /home
表示在当天的10:30执行“ls -l /home”命令。
- 查看at任务
在终端中输入以下命令查看at任务:
atq
可以看到当前所有的at任务。
- 删除at任务
在终端中输入以下命令删除at任务:
atrm [任务ID]
其中,[任务ID]是要删除的任务的ID,可以通过atq命令查看。