本文共 2965 字,大约阅读时间需要 9 分钟。
周期性的计划任务 cron
这是个计划服务,需要安装这个包,可能还需要其他包,cronie **crontab 创建计划工具对应的服务名,需要确保服务启动 ** 监控这些计划,在某些情况下未执行,就可以利用这个补充工具在将来随着计算机启动,帮你执行了 crontabs 和系统相关的一些辅助性的计划任务,run-parts脚本 可以批量执行一些计划任务 /etc/crontab关于系统的计划任务的配置文件 计划任务也是要在shell运行,你想要用哪个shell,(SHELL) 有些需要运行的执行程序,这些程序放到哪里进行搜索(PATH) 给谁发邮件(MAILTO) 上面就是一些返利,让你按照什么格式书写计划任务 有5个时间项, 1(表示分种 ,0-59) 2.(小时,0-23) 3.每个月的第几天(1-31) 4.月份(1-12)也可以写英文,jan 5.星期几(0-6)(星期天可以是7也可以是0) 用户名 执行的命令 **55分钟(空格隔开。几个都行) 15时 表示每天的意思 5月(5-9范围)(5,7,9某个月) 每个星期天执行 wang用户执行 wall cron job 命令广播 写到文件里,重启也丢不了,但是有个文件,这个文件只有root有权限更改,普通用户想要创建自己的计划任务还需要通过 其他办法 工作日的1-5半夜2点打包etc的目录打包到data的etc.tar.gz 硬件时间对的,软件时间错误,软件时间同步到硬件时间 面试经常问这个格式。比如每个月的1,10,20日想执行 这样写(1,10,20日,周六6周日0)或者的关系,有man帮助申明 *如果命令指定的是下面两个字段(每个月的天,每个星期的填),如果都指定了,并且不包括(任意的意思)的情况下,这个命令将运行在,匹配当前时间的任意时间 如(30 4 1,15 * 5)每个月的1,15日,或者星期5,它将在每个月的一号,15号,或者每个星期五执行 plus + ** 想要代表并且的关系,就在脚本里面判断是0还是星期6 就执行,不是就不执行 表示每十分钟执行一次 ** */10表示每十分钟执行一次 还可以用单词的一些用法, @monthly = 0 0 1 * * 每个月的1号0点 ** 当重启的时候自动执行某个操作 (下次启动的时候就马上执行一次) @reboot 按电源的关闭,也会执行,并不是单指reboot命令 专门有一个cron文件,记录当前发生的事件 如果这个日志文件,不小心误删,比如创建一个计划任务,不小心删除了计划任务,删除以后,可以利用这个日志里的内容来恢复计划 任务 利用信息,恢复现有的计划任务 这个命令是标准输出信息,会发邮件给你 这个文件是针对管理员,普通用户要想创建计划任务,一般有专门自己的命令 crontab 针对单个用户想创建计划任务 -e代表编辑创建任务,不过打开是一个文本文件,每分钟广播 放在了磁盘上 不能继续直接编辑,虽然不想,但是可以用命令来继续编辑 crontab -e 有特殊权限,只能借助suid的权限进去修改文件 要编辑谁的计划任务,、 如果不加用户名,就是给你自己的任务,root也可以修改wang用户的任务 任务修改了,用户名和用户组都是root,当然wang用户也可以修改回来,因为crontab有suid权限,想怎么改就怎么改 -l查看计划任务,-r删除计划任务,是wang用户所有的计划任务 -i是配个-r使用的,会以交互式的方式给你使用 -u 指定用户运行 crontab作为普通用户来讲是经常使用的,也可以控制具体哪个用户可以执行还是不执行(类似白名单,黑名单) 如果用户创建好了计划任务,后来把它放在黑名单,黑名单是针对用户不能再创建新的计划任务,老的继续执行 和at一样,默认只有黑名单没有白名单 at -c 查看细节 crontab 没有,crontab只能-e 打开看看 at -d 删除 crontab -r 删除 编辑 at没有 (除非直接改文件) crontab -e 所有at 和crontab 的标准输出错误都会邮寄给用户 root用户可以修改其他用户的任务每十分钟检查一次磁盘利用率,发现80以上就报警
磁盘快满了 逐渐消耗inode 空间满了或节点编号满了就报警 如果先实际生产中写了,逻辑上的错误,如下 centos6上也这样执行 一直在循环重启,以前7的方法就是救援模式,加光盘,按e字母,选中第一项,i正常启动的内核 在net.ifnames=0 加rd。break 按ctrl+x继续执行 在真正的跟下修改文件,写权限没有,加上写权限挂载 删除问题行上面是centos7的解决方案,下面是centos6 输入a 再输入1 再切换成正常模式init5 run-parts 是个程序,运行特定目录里所有脚本 因为有些计划任务时间过去了还没执行,那就可以重新启动下次执行 系统本身带有一些计划任务在(cron.d)这个目录创建的计划任务,就会定期执行 crontab相当于它的配置文件,cron.d子配置文件 所以cron.d下的文件相当于配置文件 、 每小时第一分钟就执行这个目录下的所有可执行脚本 每天 的1点钟而且星期天执行脚本 **这个脚本时收集日志的, 每10分钟执行一次 下面是每天在23:53创建一个日志 就可以以后想要跑脚本就放在这里,参照这个格式 ** 都能放脚本文件 makewhatis mandb可以生成数据库 locate 索引 每天都会创建索引 如果是家用电脑,关机早,这些脚本就不按计划执行,就可以用到cronie-anacron,是一个俯冲的解决方案 确保因为计算机关机而没执行 任务,执行对应的配置文件/etc/anacrontab 1=一天执行一次,5=开机5分钟之后,自动去扫描/etc/cron.daily文件,是否因为关机未执行,未执行就执行 每周的计划任务7=每7天执行一次 25=开机24分钟以后自动去扫描/etc/cron.weekly文件,是否因为关机未执行,未执行就执行 但是同时执行有可能影响服务器性能,就有一个随机延迟random_delay=45(有可能5,10分钟,最大达到45分钟)可以错开高峰 centos6放每天的计划任务里 tmpwatch,清除临时文件 每天检查,发现有些tmp已经存在10天以上就删除 而/var/tmp是以30天为条件的,超过30 删除 centos7 上有专门的服务 临时文件在linux不用手动清,是脚本自动清的 生成一个年月日的文件 如果把这个命令放到计划任务里 每分钟执行 查看日志,百分号在cron里是有特殊含义的,如果用需要转义 如果不转义干脆写在脚本里 执行 了 带这种符号的最好写到脚本,以免出现错误 每20秒做一件事,可以结合sleep使用,也可以用循环 也可以编死循环,永远等待20秒执行,脚本等20秒再调用自己 如果是毫秒怎么 办 也有usleep,达到微秒,1000微妙=1毫秒,1000000微秒=1秒,也可以分,时,天 *每7分钟怎么执行 /7(除不尽,就不能整7分钟执行) 监控的工具面试题经常出(cpu,内存利用率)转载地址:http://kwkgn.baihongyu.com/