Linux学习-计划任务

Shell

计划任务

  • 一次性计划任务 使用at命令,

    • 设定格式:at [HH:MM] [yyyy-mm-dd] ,若没有指定年月日的,默认是当天的
    • at 23:00 计划在23点执行命令
      at> echo hello > /tmp/hello.txt
      at> <EOT> 这是按ctrl+d 结束的
    • 注意:1、若执行的命令不是内部命令,建议加上命令的完整路径,若是执行shell脚本,使用source命令来引入系统的环境变量
      2、at 命令执行时没有标准输出,所以最好加一个重定向,将结果输出到指定文件
    • 查询 at 任务表:atq 或 at -l
    • 删除任务表: atrm 编号
    • at计划任务存放的路径:/var/spool/at/a 开头的文件,任务执行完毕,文件消失。
  • 周期性计划任务

    • 使用 corn 命令
    • 编辑周期性任务:crontab -e
    • 查看现有的计划任务:crontab -l
    • 删除计划任务:crontab -r
    • 编辑格式:分钟 小时 日期 月份 星期 执行的命令 需要注意命令的路径问题,crontab 只会在/sbin、/bin、/usr/sbin、/usr/bin下查找命令,如果命令不在这些目录中,应该要使用绝对路径。
    • 10 10 2 1 1-3 /usr/bin/date >> /tmp/date.txt
    • 每个用户都一个自己的周期性计划任务,使用以下方式查看:ls /var/spool/cron/
    • cron服务的日志文件:/var/log/cron
  • 计划任务加锁 flock

    • anacontab 延时计划任务
      • 存放的路径: /etc/cron.d/ 下面有一个 ohourly 文件
    • flock 锁文件
      • flock -xn "/tmp.f.lock" -c "/root/a.sh"

计划任务参考文章

原文地址:https://www.cnblogs.com/chenri/p/12677419.html