当前位置: 首页 > article >正文

17_计划任务:at和crontab命令详解

系列文章导航:01_Linux基础操作CentOS7学习笔记-CSDN博客

文章目录

      • at命令
      • crontab命令


计划任务是一种定时执行的任务,在特定的时间点或时间间隔内自动执行预定的操作。

at命令

at命令用于一次性计划任务,它不能跨越零点。

安装at命令

yum install -y at.x86_64

at命令常用选项

  • -l:列出当前用户的所有at任务。
  • -t yyyymmddHHMM:指定在具体某年某月某日某时某分安装一个at任务。
  • -f /tmp/job.txt 11:40:指定任务文件,在文件中编写需要执行的任务具体指令。
  • -c jobid:查看一个at任务的具体内容。
  • -r jobid:删除at任务。

示例

  1. 添加一个今天内的任务:
at 11:38
hello at
wall "hello wall"
<EOT>
  1. 指定在某天某时的计划任务:
at -t 202207290500
find / -type f -a -size 0 -exec rm -rf {} \;
reboot
<EOT>
  1. 列出at的任务列表:
atq
  1. 查看具体某个任务:
at -c jobId

crontab命令

crontab命令用于循环计划任务。

安装cronie

yum install -y cronie

crontab命令常用选项

  • -e:编辑任务计划,类似于vi/vim操作方式。
  • -l:查看计划任务。
  • -u <username>:指定用户。
  • -r:删除计划任务。

示例

  1. 以当前用户身份创建计划任务:
crontab -e
  1. 以指定的用户身份创建计划任务,只有root用户拥有此权限:
crontab -u <username> -e
  1. 查询当前用户的所有计划任务:
crontab -l
  1. 查询指定用户的计划任务:
crontab -u <username> -l
  1. 删除当前用户的所有计划任务:
crontab -r
  1. 删除用户的计划任务:
crontab -u root -r
  1. 删除uplooking用户的所有计划任务(只有root用户可以删除和查看其他用户的任务):
crontab -u uplooking -r

编写计划任务格式

脚本中每行的开头是时间设置,然后是要执行的命令或脚本。

  • 分钟(0 - 59)
  • 小时(0 - 23)
  • 日期(1 - 31)
  • 月份(1 - 12)或英文缩写(jan, feb, mar, apr, …)
  • 星期几(0 - 6)或英文缩写(sun, mon, tue, wed, thu, fri, sat)

示例:

  • 每分钟执行一次命令:

    * * * * * command
    
  • 每隔两分钟执行一次命令:

    */2 * * * * command
    
  • 从30分到50分之间,每隔5分钟执行一次命令:

    30-50/5 * * * * command
    
  • 每年1月1日22点执行任务计划:

    00 22 1 1 * command
    
  • 每个星期一、三、五的8点、10点、12点执行任务计划:

    00 08,10,12 * * 1,3,5 command
    
  • 每月10到15号的08:30执行任务计划:

    30 08 10-15 * * command
    

示例

  1. 每隔一分钟,将当前的日期信息追加到/tmp/mydate文件中:
crontab -e
* * * * * date +"\%F \%H:\%M:\%S" >> /tmp/mydate
  1. 每隔一分钟,将当前的日期和日历追加到/home/mycal文件中:
crontab -e
* * * * * date +"\%F" >> /tmp/mycal; cal >> /tmp/mycal
  1. 每天的22点钟,删除/tmp目录下的所有文件:
crontab -e
01 22 * * * rm -rf /tmp/*
  1. 每逢星期一下午5:50,将/etc目录下的所有目录和文件归档并压缩为文件/opt/etcBackup.tar.gz
crontab -e
50 17 * * 1 tar -czf /op/etcBackup.tar.gz /etc/
  1. 在每周六的凌晨3:15执行/usr/local/check.sh,并将标准输出和标准错误输出到/dev/null设备:
crontab -e
15 03 * * 6 /usr/local/check.sh &> /dev/null
  1. 在每个月的1号,零点十五执行重启网络服务:
crontab -e
15 00 01 * * systemctl restart network

总结:

  • at命令用于一次性计划任务,不跨越零点。
  • crontab命令用于循环计划任务。

http://www.kler.cn/a/373442.html

相关文章:

  • Android Handler消息机制(五)-HandlerThread完全解析
  • SpringBoot篇(监控)
  • CentOS 7 下升级 OpenSSL
  • facebook账号类型有哪些?
  • 使用axios请求分页
  • 【网页布局技术】项目五 使用CSS设置导航栏
  • ‘’‘’笔记
  • transformControls THREE.Object3D.add: object not an instance of THREE.Object3D.
  • 【K8S】kubernetes-dashboard.yaml
  • 自动化结账测试:使用 Playwright确保电商支付流程的无缝体验【nodejs]
  • docker 相关操作命令
  • 厨艺交流平台:Spring Boot技术实现细节
  • Pyhon中串口通信详解
  • 【Nginx系列】499错误
  • word试题转excel(一键转写excel,无格式要求)
  • 【C++】哈希表模拟:闭散列技术与哈希冲突处理
  • HTML入门教程18:HTML类
  • ef core $ 附近有语法错误_ef core contains $符近语法错
  • 「Mac畅玩鸿蒙与硬件5」鸿蒙开发环境配置篇5 - 熟悉 DevEco Studio 界面
  • 力扣每日一题 冗余连接 并查集
  • (前瞻篇)机器学习与深度学习对比
  • 知识融合是什么? - 给小学生的人工智能科普
  • golang flag介绍和使用
  • 一文带你全面了解Android 虚拟化框架(AVF)
  • 理解 CSS 中的绝对定位与 Flex 布局混用
  • 电子电气架构 --- 车载芯片现状