crontab
Linux crontab是用来定期执行程序的命令。
当安装完成操作系统之后,默认便会启动此任务调度命令。
crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
而linux任务调度的工作主要分为以下两类
1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置
crontab file是用来定义定时任务条目的文件,在Linux中,这个文件有存在几个地方系统执行的工作 updatedb、whatis、/etc/cron.d/*
用户自己定义的任务文件 /var/spool/cron/USERNAME
语法
crontab 【选项】
选项
-u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般有root用户来运行。
file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
-i:在删除用户的crontab文件时给确认提示。
服务控制
虽说是在linux启动时就会默认开启此服务,但相应的服务控制也是需要了解的,计划任务相应的服务是crond.service。
[root@linus ~]# systemctl stop crond.service
[root@linus ~]# systemctl start crond.service
[root@linus ~]# systemctl status crond.service
cron -e 编辑时的语法:
分为7个字段:分 时 日 月 周 用户 命令
分:0-59取值
时:0-23取值,24点即使0点
日:1-31取值
月:1-12取值,或者直接月份的英文单词
周:0-6取值,0或者7表示星期天
特殊符号的含义:
* : 任意/每(非常常用)
/:指定时间的间隔频率;*/10=每隔十分钟(位于分字段);0-23/2=每隔两小时
-:代表从某个数字到某个数字:8-17=8号到17号(日字段)
,:分开几个离散的数字:6,10-13,20=6号,10号到13号,20号(日字段)
1 * * * * ls #指定每1分钟执行一次ls命令
20 5 * * * ls #指定每天的 5:20 执行ls命令
30 7 8 * * ls #指定每月8号的7:30分执行ls命令
简单实例
例1:以root用户,创建和执行计划任务,查看任务并删除
[root@linus ~]# crontab -u root -e
1 * * * * root echo "hello world"
[root@linus ~]# crontab -l
1 * * * * root echo "hello world"
[root@linus ~]# crontab -r #默认删除最上面一列计划
[root@linus ~]# crontab -l
no crontab for root
注:也可直接在/var/spool/cron/下创建文件,并将其计划写入其中,也可执行计划任务,但为了避免出错,不建议直接编辑文件。
例2:每周日晚上11点进行备份系统日志文件
[root@linus ~]# crontab -e
* 23 * * 7 cp /var/log/messages /backup/system_log.txt
* [root@linus ~]# crontab -l
* 23 * * 7 cp /var/log/messages /backup/system_log.txt
注:若不指定创建任务的用户,和执行此计划任务的用户,默认都是当前用户执行。
例3:以root用户每天晚上十点执行脚本计划
[root@linus ~]# crontab -e
* 22 * * * sh /script/backup.sh
* [root@linus ~]# crontab -u root -l
* 22 * * * sh /script/backup.sh
注:登录用户为root,查看用户即是我们创建的计划任务
例4:以zhangsan普通用户的身份在每天下午三点在其目录下创建a.txt文件
[root@linus ~]# crontab -u zhangsan -e
* 15 * * * zhangsan touch /home/zhangsan/1.txt
[root@linus ~]# crontab -u zhangsan -l
* 15 * * * zhangsan touch /home/zhangsan/1.txt
来源:CSDN
作者:萎靡不振
链接:https://blog.csdn.net/qq_42534026/article/details/104248494