前言
CentOS计划任务是一种在Linux系统上自动执行特定任务的功能。在CentOS系统上,我们可以使用crontab命令来创建和管理计划任务。
以下是创建CentOS计划任务的步骤:
1. 打开终端并登录到root账户;
2. 输入命令“crontab -e”,打开计划任务编辑器;
3. 编辑器中有7个字段,分别表示分钟、小时、日、月、周、要执行的命令和命令参数;
4. 每个字段可以使用*(代表任意值)或数字指定特定数值。例如,如果要在每天的上午9点执行任务,则可以使用“0 9 * * * 命令”;
5. 完成编辑后,按“ctrl+x”保存并退出编辑器。【注意:在计划任务中使用的命令必须是系统中已安装的可执行文件或脚本。】
目录
1 计划任务概念解析
2 计划任务分类
3 Crontab详解
3.1 安装软件
3.2 启动服务
3.3 编辑和保存crontab
3.3.1 第一部分:时间
3.3.2 第二部分:动作
3.4 查看计划任务
3.5 删除计划任务
3.6 计划任务的权限控制
【注意事项】
1 计划任务概念解析
Linux系统的计划任务是指可以定期执行特定命令或程序的系统工具。计划任务可以自动执行,无需用户干预,可用于定期备份、日志清理、定时任务等。在Linux中,最常用的计划任务工具是crontab。
Crontab是Linux中的一种任务定时工具,可以帮助我们在指定时间自动执行特定的命令或脚本。Crontab可以在系统中设置多个定时任务,每个任务可以设置不同的执行时间、周期和执行命令。
Crontab的语法非常简单,由6个字段组成,分别代表分钟、小时、日期、月份、星期几和要执行的命令或脚本。(简称:分时日月周)例如,下面的Crontab条目表示每天凌晨2点执行一次backup.sh脚本:
0 2 * * * /home/user/backup.sh
Crontab的优点是它可以自动执行和管理任务,无需用户干预。但是,Crontab也有一些注意事项,例如它只能精确到分钟级别,无法处理秒级别的任务;另外,它需要用户具备一定的Linux基础知识才能使用。
2 计划任务分类
Linux计划任务可以分为系统级别和用户级别两种:
1. 系统级别计划任务:系统级别计划任务通过修改系统的crontab文件来实现,这些任务可以以root用户身份运行,并且可以在整个系统中执行。这些任务通常用于系统级别操作,如备份、日志清理、系统更新等。
2. 用户级别计划任务:用户级别计划任务可以由每个用户创建自己的crontab文件来实现,这些任务只能在该用户的环境中运行。这些任务通常用于用户级别操作,如邮件提醒、定期备份等。
此外,Linux计划任务还可以按照执行方式分为以下两种:
1. 定时任务:定时任务是指在一定时间间隔内周期性执行的任务,例如每天、每周或每月执行一次备份操作。
2. 周期任务:周期任务是指在特定日期或时间执行的任务,例如在某个具体时间点执行特定操作。
3 Crontab详解
【系统默认安装并启动Crontab的,如果没有,根据如下步骤逐个做;如果有,请直接跳转到3.3】
3.1 安装软件
使用“yum -y install crontabs”命令安装。
yum -y install crontabs
3.2 启动服务
在Linux系统中,并没有专门的crontab服务需要启动。crontab是Linux系统内置的定时任务工具,在启动系统时就已经加载并启用了。如果你想确认crontab是否已经启用,可以使用以下命令:
systemctl status crond.service
如果crontab正在运行,你会看到以下内容的输出:
如果crontab没有启动,你可以使用以下命令来启动crontab:
systemctl start crond.service
如果你想在每次系统启动时自动启动crontab,可以使用以下命令:
systemctl enable crond.service
这样,crontab服务就会在每次系统启动时自动启动,无需手动启动。
3.3 编辑和保存crontab
要编辑crontab,可以使用以下命令:
crontab -e
这会打开一个文本编辑器,你可以在里面输入要执行的命令或脚本以及相关的时间和执行频率。编辑完成后,可以点击“ESC”键输入“:wq”保存并退出。
【编辑内容如下】
3.3.1 第一部分:时间
分 |
时 |
日 |
月 |
周 |
|
范围 |
0~59 |
0~23 |
1~31 |
1~12 |
1~7 |
上面的时间范围可以查看man手册:0
man 5 crontab
“man 5 crontab”
是一个Linux系统中的手册页命令,可以帮助用户了解crontab文件的格式和内容,以及如何编辑和管理crontab文件。
crontab任务的时间格式如下:
* * * * * command
| | | | | ----- Day of the week (0 - 7) (Sunday is both 0 and 7)
| | | | ------- Month (1 - 12)
| | | --------- Day of the month (1 - 31)
| | ----------- Hour (0 - 23)
| ------------- Minute (0 - 59)
各种时间写法举例:
0 * * * * 每个小时的整点
5 10 * * * 每天的十点五分 *表示每...
1,5,9 * * * * 1,5,9表示:一、五、九分钟 ,表示取不同的范围点
8-12 * * * * 8-12表示八到十二分钟 -表示范围
*/5 * * * * */5表示每隔5分钟
# 每天早上6点运行程序
0 6 * * * /path/to/program
# 每周五晚上9点半备份数据库
30 21 * * 5 /path/to/backup_script.sh
# 每小时运行一次清理脚本
0 * * * * /path/to/clean_script.sh
3.3.2 第二部分:动作
把上面规定的时间、要执行的命令写进去,当然包括脚本(最常用),命令最好要写绝对路径。
最终我们使用“crontab -e”命令编写如下命令。
*/10 * * * * /usr/bin/touch /tmp/1.txt
最后编写成功后,保存退出即可。
3.4 查看计划任务
方法一:使用“crontab -l”命令。
crontab -l
方法二:使用“cat /var/spool/cron/root”命令。
cat /var/spool/cron/root
3.5 删除计划任务
使用“crontab -r”命令删除计划任务。
【使用这条命令将删除所有的定时任务,谨慎使用!】
crontab -r
一般我们删除计划任务使用“crontab-e”命令进去删除所想删除的任务就好。
我们删除刚才所编辑的计划任务,然后使用“crontab -e”查看,发现显示“no crontab for root
”即表示我们删除成功!
3.6 计划任务的权限控制
在CentOS系统中,Cron服务的功能是在超级用户root的权限下运行的,因此,只有root用户才能够控制和编辑CentOS系统的计划任务。
当然,如果你想让其他用户也能够控制和编辑计划任务,可以将他们添加到“crontab”或“cron.allow”文件中。具体步骤如下:
(1)创建“cron.allow”文件,如果该文件不存在的话。可以使用以下命令进行创建:
touch /etc/cron.allow
(2)向“cron.allow”文件中添加允许控制计划任务的用户名。例如,如果你想允许“user1”和“user2”控制计划任务,可以使用以下命令:
echo "user1" >> /etc/cron.allow
echo "user2" >> /etc/cron.allow
(3)保存“cron.allow”文件以后,运行以下命令重启Cron服务:
systemctl restart crond
这样,用户“user1”和“user2”就可以通过“crontab -e”命令来编辑和控制计划任务了。
!!!需要注意的是,如果同时存在“cron.allow”和“cron.deny”文件时,只有在“cron.allow”文件中列出的用户才能够控制和编辑计划任务。因此,在安全性方面,建议只使用“cron.allow”来控制用户的权限。
【注意事项】
1.crontab的时间是按照系统时间执行的,当系统时间出现变化时,crontab的执行时间可能会受到影响。可以使用“date”命令查看系统时间。
2.crontab的执行结果会输出到标准输出,可以使用重定向或者管道符将结果输出到指定的文件中。
3.crontab任务的执行权限和环境变量需要与执行用户匹配,否则任务可能无法执行或者产生不确定的结果。
4.要在crontab中使用环境变量,需要先定义环境变量在crontab中。
5.crontab的执行频率最好不要太高,以免占用过多系统资源。
创作不易,给个三连吧~文章来源:https://www.toymoban.com/news/detail-770536.html
文章来源地址https://www.toymoban.com/news/detail-770536.html
到了这里,关于CentOS系统计划任务Crontab的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!