Linux系统任务管理

https://i-blog.csdnimg.cn/blog_migrate/58966ddd9b29aabe8841f5ec34f0d31c.gif

🏡作者主页:点击!

🤖Linux专栏:点击!

⏰️创作时间:2024年11月14日11点20分

在这里插入图片描述

系统任务管理

任务管理

计划执行:特定时间运行一次:at

定期执行:按周期执行多次:cron

at

at命令可以指定linux在特定时刻运行脚本。atd为守护进程。定期检查系统 /var/spool/at 目录,获取通过at命令写入的任务

  • 命令至少需要指定一个命令和一个执行时间

  • at命令可以只指定时间,也可以和时间日期一起指定

  • at语法

    at [-V] [-q队列] [-f文件名] [-mldbv] 时间
    at -c 作业
    
  • 绝对记时----允许使用一套相当复杂的时间指定方法
    1、hh:mm时间指定,如果时间已经过去就会存放第二天执行
    2、midnight、noon、teatime下午四点,模糊时间指定
    3、12小时制,时间后加上AM或PM
    4、month day(月 日)或者mm/dd/yy(月 日 年)或者dd.mm.yy(日 月 年),指定的日期必须在指定的时间后面

  • 相对记时----对于安排不久后就要执行的命令较为方便
    now+count time-units,now就是当前时间,time-units是时间单位,这里可以是 minutes、Hours、Days、Weeks
    count是时间的数量,究竟是几天;还有一种方法就是直接使用today、tomorrow来指定命令的时间

#16:30执行任务,现在是12:30 2020/6/7
at 4:40pm				at now+240 minutes
at 16:30				at 16:30 7.6.20
at 16:30 today			at 16:30 6/7/20
at now+4 hours 			at 16:30 jun 7
#8条命令执行效果完全相同

执行权限

  • 对 at 命令,需要定时指定的命令是从标准输入或者使用 -f 选项指定的文件中读取并执行的
  • 对于其他用户来讲,是否执行某个命令或脚本取决于 /etc/at.allow 和 /etc/at.deny 文件
at -f demo.sh 15:00

实际操作

#相对时间
at now+5min
echo "aaa" >> /tmp/test.txt
data >> /tmp/test.txt
ctrl + d 退出

#绝对时间
at 22:00
pwd >> /tmp/check.log
ctrl + d 退出

atq    #查询当前未完成的命令

at -c 1    #查看任务的详细信息

atrm 1    #删除任务5

cron

at 命令会在指定时间内完成指定任务,只能执行一次,系统完成任务之后就不再执行

多次执行命令使用cron命令来完成

  • cron会搜索 /var/spool/cron 目录,寻找以 /etc/passwd 文件中的用户名命令的 crontab 文件,将 crontab 文件装入内存
  • cron 将搜索 /etc/crontab 文件,这个文件(cron时间表)是以特定格式写的
  • cron 启动以后,先检查用户是否设置了 crontab 文件,如果没有就转入睡眠状态,释放系统资源,所以该后台进程占用资源较少,之后每几分钟被唤醒一次,查看当前是否有需要运行的命令

crontab命令

  • crontab命令用于安装、删除或者显示用于驱动 cron 后台进程的表格
  • 用户把需要执行的命令序列放到 crontab 文件中以获得执行,而且每个用户都可以有自己的 crontab 文件
crontab -u    #设置某个用户的cron服务。root用户在执行 crontab时需要此参数
crontab -l    #列出某个用户cron服务的详细内容
crontab -r    #删除某个用户的cron服务
crontab -e    #编辑某个用户的cron服务
minute hour day month week(0代表周日) commands
例如:
00 08 * * 1 commands    #每周一的八点执行命令

-*    #所有取值范围内的数字
-/    #每几个单位
-     #从某个数字到某个数字
,     #离散的几个数字

例如:
* 23-8/2 * * echo"sleepy" >> /tmp/test.txt    #晚上11点到8点,每两个小时在tmp/test.txt文件中加入sleepy文本
  • cron服务每分钟不仅要读一次 /var/spool/cron 所有文件,还需要读一次 /etc/crontab 文件
  • 使用crontab配置是针对某个用户的,编辑 /etc/crontab 是针对系统的任务

实际操作

crontab -l    #使用命令查看crontab命令列表
crontab -e    #进入编辑模式,编辑未完成的任务
1 * * * * data >> /tmp/data.log    #一分钟执行一次时间命令
*/2 * * * * id >> /tmp/id.log    #每两分钟执行一次id命令
:wq
crontab -l    #使用命令查看 crontab 命令列表
crontab -r    #删除所有的 crontab 命令
crontab -l    #之后全部都没有了	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DC_BLOG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值