工厂做哪个网站好,珠海自适应网站,谷歌关键词查询工具,免费企业网站开发#x1f308; 个人主页#xff1a;danci_ #x1f525; 系列专栏#xff1a;《设计模式》《MYSQL》 #x1f4aa;#x1f3fb; 制定明确可量化的目标#xff0c;坚持默默的做事。 引言#xff1a; crond是Linux系统中用来定期执行命令或指定程序任务的一种服务或软件… 个人主页danci_ 系列专栏《设计模式》《MYSQL》 制定明确可量化的目标坚持默默的做事。 引言 crond是Linux系统中用来定期执行命令或指定程序任务的一种服务或软件与Windows下的计划任务类似。当安装完成操作系统后默认会安装此服务工具并且会自动启动crond进程。crond进程每分钟会定期检查是否有要执行的任务如果有要执行的任务则自动执行该任务。 Linux下的任务调度分为两类系统任务调度和用户任务调度。系统任务调度是系统周期性所要执行的工作比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件这个就是系统任务调度的配置文件。 Linux下的crontab是一个用于设置周期性被执行的任务的工具。用户可以使用crontab命令来编辑、查看或删除定时任务。在Linux系统中crontab命令常见于Unix和Linux的操作系统之中用于设置周期性被执行的指令。 crontab储存的指令被守护进程激活通常被称为cron jobs。crond在后台运行每一分钟检查是否有预定的作业需要执行。如果使用控制文件被修改了cron守护进程crond不必被重启而是直接读取文件。 目录
一、crond服务管理命令
二、crontab 命令
2.1 crontab 命令格式
2.2 任务配置说明
2.3 配置规则注意事项 一、crond服务管理命令
service crond start // 启动服务
service crond stop // 关闭服务
service crond restart // 重启服务
service crond reload // 重新载入配置
service crond status // 查看服务状态安装完成操作系统后默认会安装 crond 服务工具且 crond 服务默认就是自启动的。crond 进程每分钟会定期检查是否有要执行的任务如果有则会自动执行该任务。
执行命令如下
(base)[rootuat ~]#service crond start
Redirecting to /bin/systemctl start crond.service
(base)[rootuat ~]#service crond stop
Redirecting to /bin/systemctl stop crond.service
(base)[rootuat ~]#service crond restart
Redirecting to /bin/systemctl restart crond.service
(base)[rootuat ~]#service crond reload
Redirecting to /bin/systemctl reload crond.service
(base)[rootuat ~]#service crond status
Redirecting to /bin/systemctl status crond.service
● crond.service - Command SchedulerLoaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)Active: active (running) since 日 2023-12-24 16:16:49 CST; 12s agoProcess: 8293 ExecReload/bin/kill -HUP $MAINPID (codeexited, status0/SUCCESS)Main PID: 7518 (crond)Tasks: 1Memory: 640.0KCGroup: /system.slice/crond.service└─7518 /usr/sbin/crond -n12月 24 16:16:49 uat.drd.gzhxrcb systemd[1]: Started Command Scheduler.
12月 24 16:16:49 uat.drd.gzhxrcb crond[7518]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 86% if used.)
12月 24 16:16:49 uat.drd.gzhxrcb crond[7518]: (CRON) INFO (running with inotify support)
12月 24 16:16:49 uat.drd.gzhxrcb crond[7518]: (CRON) INFO (reboot jobs will be run at computers startup.)
12月 24 16:16:55 uat.drd.gzhxrcb systemd[1]: Reloading Command Scheduler.
12月 24 16:16:55 uat.drd.gzhxrcb systemd[1]: Reloaded Command Scheduler.
12月 24 16:17:01 uat.drd.gzhxrcb crond[7518]: (CRON) INFO (running with inotify support) 二、crontab 命令 crontab 命令是通过 /etc/cron.allow 和 /etc/cron.deny 文件来限制某些用户是否可以使用 crontab 命令的。 命令使用原则
· 如果两个文件都不存在则只有root用户才能使用crontab命令。
· 如果cron.allow存在, cron.deny不存在则只有列在cron.allow文件里的用户才能使用crontab命令如果root用户也不在里面则root用户也不能使用crontab。
· 如果cron.deny存在, cron.allow不存在则只有列在cron.deny文件里面的用户不能使用crontab命令其它用户都能使用。
· /etc/cron.allow优先级高于/etc/cron.deny
· 都存在情况下只有写入/etc/cron.allow文件的用户可以使用 crontab 命令没有写入的用户不能使用 crontab 命令。若用户同时有/etc/cron.allow和/etc/cron.deny中则/etc/cron.deny被忽略。 Linux系统默认只有/etc/cron.deny文件如下图所示 2.1 crontab 命令格式
[rootlocalhost ~]# crontab [选项] [file]
说明
file: 命令文件的名字表示将file 作为 crontab的任务列表文件并载入 crontab若在命令中未指定文件名则上命令将受标准输入键盘上键入的命令并将它们键入 crontab。选项 -uuser 用来设定某个用户的crontab服务。用户的 crontab 服务此选项一般有 root 用户来运行-e编辑某个用户的 crontab 文件内容。如果不指定用户则表示编辑当前用户的 crontab 文件。-l显示某用户的 crontab 文件内容如果不指定用户则表示显示当前用户的 crontab 文件内容。-r从 /var/spool/cron 删除某用户的 crontab 文件如果不指定用户则默认删除当前用户的 crontab 文件。-i在删除用户的 crontab 文件时给确认提示。 示例 查看内在使用情况 有一天我发现框中的区域即缓存的内存非常的高可用内在非常的低有一些应用启动不起来于是写了一个清缓存的脚本如下
[rootdrd app]# vi cleanBuffCache.sh
#!/bin/bash
echo 开始清理缓存
# 写入硬盘防止数据丢失
sync;sync;sync;
# 延迟10S
sleep 10
echo 1 /proc/sys/vm/drop_caches
echo 2 /proc/sys/vm/drop_caches
echo 3 /proc/sys/vm/drop_caches
echo 清理缓存结束 然后配置crontab如下
[rootdrd app]# crontab -e
0 0 * * * /home/***文件绝对路径***/cleanBufferCache.sh 当“crontab -e”编辑完成之后一旦保存退出那么这个定时任务实际就会写入 /var/spool/cron/ 目录中每个用户的定时任务用自己的用户名进行区分。而且 crontab 命令只要保存就会生效只要 crond 服务是启动的。 然后使用 service crond reload 命令重新载入配置使刚刚配的任务生效。或者用service crond restart 或 service crond stop 再service crond start 均可 2.2 任务配置说明
语法
minute hour day month week command 如上配置0 0 * * * /home/***文件绝对路径***/cleanBufferCache.sh
第一个0minute表示一小时当中的第0分钟可用 * 表示任务分钟。取值范围 0 ~ 59第二个0hour表示一天当时第0小时可用* 表示任务小时。取值范围 0 ~ 23第三个 *day表示一个月当中的第几天。取值范围 1 ~ 31第四个* month表示一年当中的第几个月。取值范围 1 ~ 12第五个* week表示一周当中的星期几。0 ~ 7 0 和 7 是星期日第六个参数command要执行的命令可以是系统命令也可以是自己编写的脚本文件。本示例为可执行的脚本文件
特殊符号说明
* 星号表示任务时间。如第一个左边第一个代表一小时中每分钟都执行一次的意思。,逗号表示不连续的时间。如 0,15,25 * * * * 表示每小时0分钟、15分钟 和 25分钟都执行一次命令。-中杠表示连续的时间范围。如 0 8-12 * * * 表示8点到12点0分都执行一次命令。/正斜线表示每隔多久执行一次。比如 */25 * * * * 表示每隔25分钟执行一次命令。 示例
配置规则说明45 22 * * *在 22 点 45 分执行命令0 17 * * 1在每周一的 17 点 0 分执行命令0 5 115 * *在每月 1 日和 15 日的凌晨 5 点 0 分执行命令40 4 * * 1-5在每周一到周五的凌晨 4 点 40 分执行命令*/10 4 * * *在每天的凌晨 4 点每隔 10 分钟执行一次命令0 0 115 * 在每月 1 日和 15 日每周一个 0 点 0 分都会执行命令注意星期几和几日最好不要同时出现因为它们定义的都是天非常容易让管理员混淆 0 6 * * * 每天早上6点执行 0 */2 * * * 每两个小时 0 11 4 * 1-3 每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点 0 4 1 1 * 1月1日早上4点
推荐Crontab命令执行时间工具网站crontab执行时间计算 - 在线工具可以此网站来测试和验证CRON表达式的执行计划。 2.3 配置规则注意事项
6 个选项都不能为空必须填写。如果不确定则使用“*”代表任意时间。crontab 定时任务的最小有效时间是分钟最大有效时间是月。像 2018 年某时执行、3 点 30 分 30 秒这样的时间都不能被识别。在定义时间时日期和星期最好不要在一条定时任务中出现因为它们都以天为单位非常容易让管理变得混淆。在定时任务中不管是直接写命令还是在脚本中写命令最好都使用绝对路径。有时使用相对路径的命令会报错。 注2.2 第六个参数 command是一个可执行命令和可执行的文件若此参数是文件一定要把这个文件的权限修改为可执行的文件否则不生效。