【Linux基础】计划任务

一、一次性计划任务 at

示例:计划在23:00的时候执行 echo 123 > /tmp/hello.txt

  • $ at 23:00(之后会进入at的终端控制模式)
  • at> echo 123 > /tmp/hello.txt
  • at> Ctrl + D(结束)

使用命令atq查看计划任务

二、周期性计划任务

相关命令:cron

  • 配置方式:crontab -e
  • 查看现有的计划任务:crontab -l
  • 配置格式:分钟 小时 日期 月份 星期 执行的命令。注意命令的路径问题
  • 相关文件:
    • /var/log/cron ,关于 cron 的执行日志
    • /var/spool/cron, 关于属于各个用户的计划任务

示例:

# 在终端输入crontab -e会进入一个类似vim的操作界面
$ cronteab -e

### crontab 界面 ###

# 每分钟执行一次 /usr/bin/date >> /tmp/dates.txt
* * * * * /usr/bin/date >> /tmp/dates.txt

# 每周三的 4:00 执行一次 /usr/bin/date >> /tmp/dates.txt
0 4 * * 3 /usr/bin/date >> /tmp/dates.txt

三、计划任务加锁 flock

如果计算机不能按照预期时间运行:

  • anacrontab:延时计划任务
    • 相关文件:/etc/anacrontab
  • flock:锁文件
    • 示例:flock -xn "/tmp/f.lock" -c "/home/user1/a.sh"

推荐阅读更多精彩内容