Ubuntu上使用crontab来定时执行Python脚本
此文章为原创,转载及其他用途请注明出处!
已具备条件:
1. Python3
2. Ubuntu服务器或Ubuntu系统的电脑
3. crontab(Ubuntu系统已默认安装)
一、准备定时运行的脚本----Crontab_test.py
(在Ubuntu系统上已有py文件请跳过本步骤)
1. 由于我是win10系统,所以是先在本地写好脚本,然后上传到服务器上。
本地和服务器文件传输可以使用工具-----Xftp,在使用Xftp上传文件到阿里云服务器时,需要自行配制下安全组,参考阿里云官网----> 点这里。
连接完成后的截图如下:
2. 比如写好的py文件如下:
#!/usr/bin/python3
# coding=UTF-8
import datetime
Now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
print('Now the time is : ', Now)
此段代码输出当前时间。
然后在左侧找到本地文件----->右键---->传输即可(先在右半面-即在服务器的磁盘找到要传输到的目录)。
二、crontab简要介绍
推荐去这里查看,CSDN上的一些人写的不一定会靠谱。
命令格式如下:
# ┌───────────── minute (0 - 59)
# │ ┌───────────── hour (0 - 23)
# │ │ ┌───────────── day of the month (1 - 31)
# │ │ │ ┌───────────── month (1 - 12)
# │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday;
# │ │ │ │ │ 7 is also Sunday on some systems)
# │ │ │ │ │
# │ │ │ │ │
# * * * * * command to execute
详细信息参考链接。
常用命令:
1. 使用-l参数列出crontab文件:
crontab -l
2. 编辑crontab文件:
crontab -e
三、添加一个定时任务:
1. 在终端输入crontab -e,按照命令格式的形式,输入需要的定时任务。
比如,每天的21:12运行一次程序,格式如下:
12 21 * * * /usr/bin/python3 /root/pyCode/Crontab_test.py >> /root/pyCode/Test_crontab.log 2>&1
注:意思是--> 将运行结果的输出输出到Testcrontab.log文件中,2>&1的意思是把错误的输出也输出到标准输出(2表示错误,2>表示错误输出,&表示等同于,1表示正确),因此如果运行出错也会把错误输出到之前定义的log中。
2. 在21:12以后,打开刚刚输入的目录去看日志文件的内容:
cd /root/pyCode/
sudo nano Test_crontab.log
打开log文件后,内容如下图所示:
可以看到,脚本在21:12准时运行,到此就完成了定时任务呀!