【CRONTAB】

背景介绍

crontab做定时任务是运用在linux系统中。
对于前期知道什么时候运行的任务:crontab和apscheduler都可以;
前期不知道什么时候运行的:crontab不支持。

实例用法

我看网上的教程大多是从已经会使用的角度去写的总结。我从小白的角度写一个案例。用于快速上手。

1.用于执行的task

建立一个用于执行的测试任务hello.py:

import time 

def print_time():
    t = time.time()
    print(f'time now is:{t}')

if __name__ == "__main__":
    print_time()

2.crontab -e

在任意path下输入 crontab -e
即可进入用户定时任务编辑页面:
在这里插入图片描述在这里,第一次进来会要求你选择编辑方式,我选的3 vim-tiny
再次crontab -e就可以进来了,进来后,输入下面的命令

* * * * * python3 /home/Documents/test/hello.py >> /home/Documents/test/log.txt

这句话的意思是,每分钟执行一次,执行hello.py的文件,>>重定向,为输出指向log.txt(自己通过touch log.txt建立)。
写完后,esc,输入:wq保存退出。

检验成功

经过上面两步,我们就会发现
在这里插入图片描述log里已经可以正常输出时间了。

notes

1.重定向

重定向要使用>>,instead of >
if you use >, log.txt will be like:
在这里插入图片描述tail -f的时候报文件已截断就是因为每次都覆盖,相当于>为重写文件,>>为续写append。

2.保证你的command在单独执行的时候是正常运行的。

因为我发现我在/test/路径下直接python hello.py可以运行,但是加绝对路径时只有python3才可以正常运行。所以要保证好定时任务本身可正常执行。

3.其他log

查询定时任务执行情况可以通过:

cat /var/log/cron.log
但是我发现自己/var/log/目录下并没有cron文件,后来发现是要按照下面链接的blog修改/etc/rsyslog.d/50-default.conf中cron那行,把注释去掉。

crontab在/var/log/目录下没有cron.log文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值