linux下周期性的定时任务有哪些应用,如何进行设置
Admin 2022-06-20 群英技术资讯 581 次浏览
用户设置周期性计划任务crontab
一般用户想要设置周期性计划任务的话,需要使用crontab这个命令。和at一样,crontab也有黑白名单,对于的配置文件分别是——/etc/cron.deny、/etc/cron.allow。
当用户设置了定时任务,该任务就会以文本文件的方式记录到/var/spool/cron目录下。
# ll /var/spool/cron/ total 4 -rw------- 1 root root 98 Jul 28 03:58 root
关于crontab,我们只需要记住两个命令
crontab -e 设置定时任务
crontab -l 查看定时任务
设置定时任务的格式如下:
基本格式:分 时 日期 月份 星期 命令 取值范围:[0-59] [0-23] [1-31] [1-12] [0-7]
除此之外,我们还需要记几个特殊字符的含义:
* 表示任意时刻都可以
, 表示分隔时间段的含义
- 表示连续一段时间
/n 表示每隔n单位间隔
下面通过几个例子来看看上面特殊字符的用法:
# 每隔5分钟,执行下检测内存的脚本 */n * * * * /root/script/check_memory.sh # 每个月1号凌晨5点20分,重启下服务器 20 5 1 * * /usr/sbin/reboot
系统的配置文件/etc/crontab、/etc/cron.d/*
关于周期性的计划任务,主要对应的有三个地方的配置文件,分别是
/var/spool/cron/,针对用户来设置的
/etc/crontab,针对系统的计划任务
/etc/cron.d/ 针对某个软件、系统的定时任务,比如针对一个网站,可能会有多个定时任务,那么建议在/etc/cron.d/目录下,新建立一个配置文件
crontab -e是针对用户级别设计的,对于系统级别的周期性任务,建议写在/etc/crontal 文件中,或/etc/cron.d/目录下。
下面看看/etc/crontab文件内容
# cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed # * * * * * root /usr/bin/date >> /root/cron.txt
可以看到,和crontab -e稍微有点区别,这里需要指定用户名。
接下来,我们再来看看/etc/cron.d/目录下有哪些文件
# ll /etc/cron.d total 8 -rw-r--r--. 1 root root 128 Aug 3 2017 0hourly -rw------- 1 root root 235 Aug 3 2017 sysstat
假如,服务器上有一个网站,对于该网站,我们需要定时备份数据库、网站文件,另外还需要定时处理些数据,那么,我们就可以在/etc/cron.d/目录下建立一个相关文件。我们再看看0hourly文件内容:
# Run the hourly jobs SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root 01 * * * * root run-parts /etc/cron.hourly
该脚本的意思是,每小时去执行/etc/cron.hourly目录下的脚本文件。
估计眼尖的朋友已经发现了,除了cron.hourly目录,还有cron.daily、cron.monthly、cron.weekly目录。但是这三个目录还是有点区别的,这三个目录是anacron所执行的。这个anacron表示唤醒未执行的定时任务并执行它。举个例子,当你使用crontab -e设置了定时任务后,因为关机或其他原因,时间过了单任务并没执行,那么就只能错过就错过了,但如果将脚本放置在/etc/cron.daily/目录下,只要没有被执行,即使时间过了,它还是会被执行。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
新手朋友们在不了解Linux命令的情况下,很容易在移动或者重命名文件时将 mv 写为 rm,这样就会造成文件被删。那Linux rm命令误删文件需要怎么复原?下面请看小编整理的资料。
3种查询方法:1、打开终端,执行“mysql -V”命令,查看输出结果中Distrib关键字后跟的版本信息即可。2、打开终端,执行“mysql --version”命令,查看输出结果中Distrib关键字后跟的版本信息即可。3、打开终端,执行“mysql --help |grep Distrib”,查看输出结果中Distrib关键字后跟的版本信息即可。
在linux中,可以利用find命令的“-prune”参数使find在查找文件时不查找指定子目录,find命令用来在指定目录下查找文件,当参数设置为“-prune”时可以进行过滤,只需将要忽略的路径参数必须紧跟着搜索的路径之后,否则该参数无法起作用,语法为“find 搜索路径 -path 不查找的子目录路径 -prune...”。
Centos7搭建vsftpd服务
在linux中,可以使用“useradd 用户名”命令来创建新用户;然后使用“passwd 用户名”命令来给已创建的用户设置密码,需要输入两次密码来确保密码的正确。新创建的用户会在“/home”下创建一个用户名目录。
推荐内容
相关标签
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008