定时任务

    xiaoxiao2021-12-14  17

    1、Linux常见的例行性工作 登录档的轮替:系统会记录所发生的一切信息,但信息会越来越大,所以要将新旧信息分离 登录文件分析logwatch:系统经常发生错误,logwatch就是用来分析错误信息 建立locate数据库:文件名数据库放置在/var/lib/mlocate,系统会定时updatedb whatis数据库建立 RPM软件登录文件的建立 移除暂存档:系统通过tmpwatch来移除软件在运行过程中的暂存档 与网络服务有关的分析行为 2、仅执行一次 2.1、atd 要使用仅执行一次的工作排程,系统上就必须要有负责这一次排程的服务,atd就是。 (1)安装atd 如果系统中没有at或atd命令,使用yum -y install at安装一下就行 (2)启动atd服务 /etc/init.d/atd restart 设置开机启动 chkconfig atd on 2.2、at (1)at工作执行原理 使用at指令产生所要运作的工作,并将这个工作以文本文件的方式写入/var/spool/at目录内,然后等待atd服务取用与执行 (2)at的使用限制 为了系统的安全起见,对于at命令的使用是有限制的,我们通过/etc/at.allow与/etc/at.deny这2个档案进行at的使用限制。 ①先去查找是否有/etc/at.allow这个文件,如果有,则其中的用户可以使用at,不在这个文件里的用户就不能使用at(即使没有写在/etc/at.deny中) ②如果/etc/at.allow不存在,就寻找/etc/at.deny这个文件,在这个文件中的用户不能使用at,不在这个文件中的用户就可以使用at ③如果以上2个文件都不存在,那么只有root可以使用at 以上可以看出/etc/at.allow的管理方式比/etc/at.deny严格 2.3、单一工作排程 (1)at的使用 ①at -【mldvfq】 时间 -m 任务完成后向使用者发送email -l 相当于atq,列出系统上面该用户的所有at排程 -d 相当于atrm,可以取消一个在at排程中的工作,后面接工作编号 -f 指定包含具体指令的任务文件 ②at -c 工作号码 -c 列出后面接的工作的实际指令内容 ③时间格式 now + 数字 minutes/hours/days/weeks HH:MM yyyy-mm-dd ④输入at之后,会出现at shell环境,按enter键结束一行指令,按ctrl+d结束输入。由于指令的执行与PATH有关,所以建议使用绝对路径来表示文件或指令。 (2)通过终端机装置查看echo内容 如果在at后使用echo输出内容,是看不到的,因为标注输入输出都会传到mailbox里,借助终端装置可以实现打印echo内容。 ①查看当前用户登录终端 tty或who am i ②echo 内容 > /dev/tty* 2.4、batch的使用 (1)如果你是在一个非常忙碌的系统下运作at,使用batch可以指定工作在较闲的时候进行。batch也是利用at进行工作排程,只不过它会在CPU负载小于0.8的时候,才进行用户所下达的工作任务。 (2)batch用法与at一样 3、循环执行工作排程 3.1、crontab (1)使用限制 与at一样,出于安全问题,我们也要限制crontab的使用者账号 ①先去查找是否有/etc/cron.allow这个文件,如果有,则其中的用户可以使用crontab,不在这个文件里的用户就不能使用crontab(即使没有写在/etc/cron.deny中) ②如果/etc/cron.allow不存在,就寻找/etc/cron.deny这个文件,在这个文件中的用户不能使用crontab,不在这个文件中的用户就可以使用crontab (2)crontab执行原理 使用crontab建立的工作排程都会被记录到/var/spool/cron/用户名/中,cron执行的每一项工作都会被记录到/var/log/cron这个登录档中 (3)/etc/crontab里是系统的任务调度的配置文件 3.2、crontab使用 (1)crontab 【-u 用户名】 【-l | -e | -r】 -u 只有root才能进行这个任务,亦即帮其他使用者建立/移除crontab工作排程 -e 编辑crontab的工作内容 -l 查阅crontab的工作内容 -r 移除所有crontab的工作内容,若只要移除一项,请用-e (2)使用crontab -e每行的格式 项分时日月周指令范围0-590-231-311-120-7-- 其中:周这项的0或7都代表星期日 还有一些辅助字符: *代表任意时刻,分隔段,例如m,n代表第m和第n-区间,例如m-n表示从m到n/n常用来与*搭配,表示每隔n时间的意思 (3)crontab服务是默认开启的,如果没有开启需要手动开启 查看crontab服务状态:service crond status 启动服务:/sbin/service crond start 关闭服务:/sbin/service crond stop 重启服务:/sbin/service crond restart 重新载入配置:/sbin/service crond reload (3)系统定时任务 ①crontab -e编辑的是用户的定时任务,如果是系统级的定时任务,只要编辑/etc/crontab这个文件就可以了,cron服务会每分钟去读取一次这个文件。有些时候修改完文件不会立即执行,是因为有的系统是把文件独到内存中的,所以有时候需要重启一下cron服务/etc/init.d/crond restart ②任务的执行 方式一:直接执行命令 * * * * * 用户名 指令 方法二:指定特定目录执行 * * * * * 用户名 run-parts 脚本存放目录 注: 任务的执行需要指定用户,一般是root run-parts是Linux提供的脚本辅助执行命令 在/var/log/cron中可以查看是否有木马 周与日,月不可同时并存 4、anacron (1)anacron并不能指定何时执行某项任务,而是以天为单位或者是在开机后立刻进行anacron的动作,它会去侦测停机期间应该进行但是没有进行的crontab任务,并将任务执行一遍后停止。 (2)anacron执行原理 anacron会去读取时间记录文件,并分析现在的时间与时间记录文件所记载的上次anacron时间,2者比较后若发现有差异,那就是在某些时刻没有进行crontab。 (3)anacron语法 ①anacron 【-sfn】 【job。。。】 -s 依据时间记录文件判断开始连续执行各项job -f 强制执行,而不去判断时间记录文件的时间戳 -n 立刻执行未执行的任务,而不考虑等待时间 ②anacron -u job。。。 -u 仅更新时间记录文件的时间戳 job:由/etc/anacrontab定义的各项工作名称 任务的时间戳记录文件放在/var/spool/anacron/下面
    转载请注明原文地址: https://ju.6miu.com/read-964564.html

    最新回复(0)