欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ubuntu如何定时执行脚本教程

程序员文章站 2022-04-08 10:24:16
前几天女神给我发了条消息,“为什么我每天早上九点都会收到你给我发的天气信息的邮件?”然后…… 当然,我是不可能告诉她,我是用crontab...

前几天女神给我发了条消息,“为什么我每天早上九点都会收到你给我发的天气信息的邮件?”然后……
当然,我是不可能告诉她,我是用crontab来定时执行python脚本滴!
好了,废话不多说,直接进入正题!

ubuntu定时执行脚本

cron是一个Linux下的后台进程,用来定期的执行一些任务。因为我用的是Ubuntu,所以这篇文章中的所有命令也只能保证在Ubuntu下有效。

查看cron是否运行

ps -ef | grep cron

ubuntu如何定时执行脚本教程
开始的时候,我的ubuntu的cron不是自动运行的,所以sudo service cron start
1:编辑crontab文件,用来存放你要执行的命令

sudo crontab -e

2:第一次用这个命令,会让你选择文本编辑器,我选的是vim
(输入数字选择就是了!)

3:添加执行命令

0 9 * * * /home/katyusha/code/sendemail.py

sendeamil.py就是我给女神发邮件的脚本,这句话的意思就是每天早上九点都会自动执行这个脚本!(至于0 9 * * *这些东西,以下会详解!)
ubuntu如何定时执行脚本教程

4:重启cron来应用这个计划任务

sudo service cron restart
corntab详细说明

1:crontab文件的基本格式如下所示

* * * * * command
分 时 天 月 周 命令

crontab中的每一行代表一个定期执行的任务,分为6个部分。前5个部分表示何时执行命令,最后一个部分表示执行的命令。每个部分以空格分隔,除了最后一个部分(命令)可以在内部使用空格之外,其他部分都不能使用空格。前5个部分分别代表:分钟,小时,天,月,星期,每个部分的取值范围如下:
分钟 0 - 59
小时 0 - 23
天 1 - 31
月 1 - 12
星期 0 - 6 0表示星期天
* (星号) 表示任意值,比如在小时部分填写 * 代表任意小时(每小时)
,(逗号) 可以允许在一个部分中填写多个值,比如在分钟部分填写 1,3 表示一分钟或三分钟
/(斜线) 一般配合 * 使用,代表每隔多长时间,比如在小时部分填写 /2 代表每隔两分钟。所以 /1 和 * 没有区别

2:crontab例子
(1)30 20 * * * date >> /home/date.log //每天的20:30将日期信息追加home目录下的date.log中
(2)5 20 13,14 * * date >> /home/date.log //每月的13日,14日20:5分将日期信息最追加home目录下的date.log中
(3)0,10 10,12 * * * date >> /home/date.log //每天10点至12点之间,隔10分钟将日期信息最追加home目录下的date.log中
(4)/5 * * * date >> /home/date.log //每5分钟将日期信息最追加home目录下的date.log中

3:crontab是UNIX系统下定期执行任务的触发器。用户把要定期执行的任务记录在这个文件下面,然后crond定期的去检查这个定期执行列表,有要执行的工作时便自动执行。
通过man crontab可以查看到下面的信息
(1)/etc/crond.allow 表示的是允许使用crontab的用户列表
(2)/etc/crond.deny 表示的是不允许使用crontab的用户列表

4: crontab常用的几个命令格式
crontab -l //显示用户的crontab文件的内容
crontab -e //编辑用户的crontab文件的内容
crontab -r //删除用户的crontab文件

好了crontab的就说到这里了,以后大家就可将从网上爬取的数据,定时以邮件的形式发给各自的女神了!
刚巧我的女神要用邮件!