linux学习之旅(十四)&& 系统延时及定时任务

来源:互联网 发布:linux qt 中文不显示 编辑:程序博客网 时间:2024/06/06 18:49

系统延时及定时任务

一.系统延时任务 ( 延时任务是临时的 )

1.at命令

at 命令可以指定某一任务在将来的特定时间运行。该作业可能是一次备份 、对您系统的检查或者特定时间发送的通知。那些需要花费很长时间才可完 成的作业正适合 at 命令。仅需使用 at 命令将任务设置为在一分钟或两 分钟之后运行。然后您便可以安全注销 , 因为该任务会在与 shell 会话 断开连接的情况下运行

at 命令必须指定任务应运行的时间。该指定可以是具体时间和 / 或日期 ( 例如星期一 , 10:00pm 或 7 月 15 日 ) 。也可以是当前时间的相 对时间 ( 现在时间加上 5 分钟 , 现在时间加上 3 天或 4:00pm 加上 1 周 ) 通过添加其他选项 , 您可以在任务完成是发送邮件 ( -m ), 或者 从文件中读取任务 ( -f 文件 ), 而无需通过标准输入进行

at  +  timeat> 延迟的动作ctrl+d   ##保存退出at -l | atq     ##查看当前任务atrm  | at -d +任务号  ##取消指定任务at -c +任务号      ##查看任务内容at now+1min     ##延时一分钟at -f file  time    ##延时执行文件中的内容(文件不是脚本)at -m   (at命令后添加)##延时命令没有输出时也发送邮件给执行者,当你命令没有输出,也要发送邮件给执行者,但邮件内容是空的at -M   (。。。)   ##延时命令即使有输出也不发送邮件给执行者at now+1min -f file ##(设置时间发送文件)
  • mail 可以收邮件,默认有输出的命令才可以发起邮件

2.at命令的执行权力设定

/etc/at.deny ##用户黑名单,此名单中的用户不能执行at命令 (直接在文件中写用户名) /etc/at.allow ##用户白名单,名单默认不存在,本身只有at.deny这一个文件,但是名单一旦出现,即touch  /etc/at.allow,那么用户黑名单(at.deny)失效,而且系统默认所有用户默认不能执行at,只有在这个名单中出现的用户可以使用at命令(优先级高于黑名单)。文件也是直接进去写*两个文件即改即生效*
  • 可以man 5 at.allow

二.定期任务

定时任务是永久的

定时任务程序crond,在系统中每分钟做任务扫描

cron 设备管理必须按计划定期重复运行的程序。后台程 crond 每分钟唤醒一次 , 以运行计划的任何任务用户使用 crontab命令计划个人任务。系统管理员可以在系统范围配置文件中设置任务

1.发起方式

发起方式一(命令发起)

crontab -u username -e      ##username用户建立定时任务(默认vi编辑器进入编辑)crontab -e 以自己身份写##可以写多行"此命令会进入一个文本,该文本的填写方式是: 分 时 天 月 周 + 命令"crontab -u username -r      ##查看某用户的定时任务crontab -u username -l      ##删除某用户的定时任务man  5  crontab
  • 如果在里面默认写创建文件时,这个文件默认创建在这个用户的家目录下
  • 比如在 crontab -u student -e 中写了 * * * * * touch yyuyuyuyuyu 那么,这个文件被默认创建在了/home/student,即student的家目录下面

发起方式二(文件发起)

文件一:
/var/spool/cron/root(文件名谁发起就是谁的,也可以是student…)

  • man crontab:
  • 在里面写,等同于crontab -u root -e,用crontab -u root -l 也能看见 。直接写入,不需要执行权限,直接生效

但是,用文件名区分,就要创建很多不同名的文件,非常麻烦,所以文件二就比较的重要了

文件二:
/etc/cron.d/filename (这里面写的是任务)

属于系统的任务通常保存在 /etc/crontab 文件中而不是使用 crontab -e 编辑保存在个人文件中。更好的做法是用文本编辑器创建 crontab 文件并保存到 /etc/cron.d 中 ( 避免更新 系统软件包 cronie 时出现问题 ) 。
/etc/cron.d/crontab 文件在日期说明后另加一个字段 , 表示将运行作业的用户 对于需要每天、每周或每月运行一次的脚本 ,
可以直接将其设 置为可执行文件 , 并保存在 /etc/cron.{daily,weekly,monthly} 中相应目录下。这些任务由 /etc/anacrontab 配置的系统 anacron 服务运行anacron 是 cron 的集成组件 , 用于更好地管理作业 , 并确保在作业。

  • 注意: /etc/cron.d 是脚本文件,需要保证cron.d有执行权限,才可以使目录里面的任务文件生效
vim /etc/cron.d/filename //创建一个文件并在里面填写,此文件可以填写多个用户填写方式是:"分钟 小时 天 月 周  用户  动作"分 时 天 月 周 + 用户 + 命令  * * *  *  *  root  touch /mnt/file   //表示每分钟在/mnt目录下建立一个文件file,而且也是crontab不会看到的,也不会出现在/var/spool/cron/root/etc/cron* 每个目录都有固定的效果,比如目录下有监控文件logrotate,如果有在关机状态时间内应该执行的定期动作,那么在开机时,会监控到之后,自动执行这些命令。

2.时间表示方法

man 5 crontab :

表示方式 : 分 时 天 月 周 命令(最精确只能精确到分钟,即最短也是每分钟执行)(必须都要有,不能省略)
eg:
* * /2 * #每隔两天
* 08-17/2 * * * #八点到下午两点每隔两个小时
* * 01,15 * 6 #每月一号,15号及周六

2.crontab命令的执行权力设定

/etc/cron.deny  //用户黑名单,此名单中的用户不能执行crontab命令' /etc/cron.allow   #白名单,名单默认不存在,但是名单一旦存在,黑名单失效#建立后所有用户均没有at命令执行权限,只有在名单中出现的用户可以使用(直接在文件中写用户名)类似于at.allow  at.deny即改即生效

三:系统中的临时文件

系统中服务在正常运行时会产生临时文件
/usr/lib/tmpfiles.d/*.conf #系统中临时文件的配置

  • 在系统中 /usr/lib/tmpfiles.d/ 目录下存放
  • 系统的临时文件配置是 /usr/lib/tmpfiles.d/*.conf,自己创建的临时文件配置文件必须以.conf结尾

临时文件配置的编写方式是:
文件类型 文件名称 文件权限 文件所有人 文件所有组 文件存在时间(此时时间没到就删不掉,clean不掉)

eg:
d /mnt/westos 777 root root 10s
##表示在/mnt目录下创建临时目录westos,并且十秒内不能被删除

systemd-tmpfiles --create  /usr/lib/tmpfiles.d/*  //##执行临时文件配置systemd-tmpfiles --clean  /usr/lib/tmpfiles.d/*   ##清理临时文件##注意,可能在运行时会和之前设定的crontab冲突,所以如果在试验中出现问题,比如无法创建,那么可能执行了定时任务删除
  • eg:建立目录/mnt/demo,此目录中的文件必须存在2分钟以上才会被清理,系统每分钟清理/mnt/demo一次
    编写脚本

    运行之后:

    整点两分钟之后:

    //目录的子文件已经删除
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 高中生玩游戏父母怎么办 高中生爱玩游戏怎么办 宝贝发烧不退烧怎么办 孩子行笔速度慢怎么办 孩子不会读英语怎么办 太注意小孩考试成绩怎么办 二年级成绩很差怎么办 班级差生应该怎么办 班级差生太多怎么办 初三孩子英语差怎么办 初三英语基础差怎么办 学生学习效率低怎么办 摔伤后皮下血肿怎么办 孩子学习效率低怎么办 很多作业没写完怎么办? 小学孩子成绩差怎么办 孩子脚上起水泡怎么办 小学一年级体育课哑铃怎么办 托福成绩失效后怎么办 去外国旅游不适应怎么办 一年级语文成绩差怎么办 一年级小孩成绩差怎么办 一年级小孩基础差怎么办 一年级小孩语文差怎么办 一年级小孩数学差怎么办 一年级小孩理解能力差怎么办 一年级小孩作文差怎么办 一年级小孩记忆力差怎么办 孩子的记忆力不好怎么办 孩子记忆力不好怎么办呢 小学三年级学生不听话怎么办 司法考试成绩单没打印怎么办 高一200分怎么办 初一孩子语文差怎么办 大学专业没选好怎么办 减肥口渴的厉害怎么办 开胸手术后胸闷气短怎么办 打游戏上网成瘾怎么办 老公打游戏成瘾怎么办 我老是沉迷游戏怎么办 18孩子沉迷游戏怎么办