ubuntu定时执行python脚本方法及实例代码

一、前言

 

本文将介绍ubuntu系统下如何定时执行shell脚本、python脚本,ubuntu系统有一个定时任务的管理器crontab,我们只需要编辑定时任务,然后重启定时任务服务就好了。

 

二、工具:crontab

 

a、编辑定时任务:

crontab -e

 

b、参数定义:

  • -u 指定用户,
  • -l 列出用户任务计划,
  • -r 删除用户任务,
  • -e 编辑用户任务

 

c、英文介绍:

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

d、中文解释:

格式:

m h dom mon dow command

以上为缩写,这里提供全拼对照:

minute (m),  hour (h), day of month (dom), month (mon), day of week (dow)

含义如下:

  • m 每个小时的第几分钟执行该任务
  • h 每天的第几个小时执行该任务
  • dom 每月的第几天执行该任务
  • mon 每年的第几个月执行该任务
  • dow 每周的第几天执行该任务 - command 指定要执行的程序

分      小时    日      月       星期     命令
0-59   0-23   1-31   1-12     0-6     command

其他:

  • 其中星期中0表示周日。
  • * 代表任何时间,比如第一个分钟,用 * 就代表每一小时的每一分钟都执行
  • - 表示区间,比如1-3
  • , 如果区间不连续,可以用,例如1,3,6    编辑完成后wq 保存退出

记住几个特殊符号的含义:

  •  "*"代表取值范围内的数字,
  •   "/"代表"每",
  •   "-"代表从某个数字到某个数字,
  •   ","分开几个离散的数字

 

三、方法使用:

 

1、简易方法:

a、创建脚本文件test.py,在文件开头需要加上下面一行

#!/home/qq/anaconda3/bin/python

   上面这行的作用是说明使用那个解释器来执行该文件,如果不知道python解释器在哪,可以使用命令which python来查看

b、给该文件添加可执行的权限

chmod  +x  test.py

c、添加新一行

    输入命令,修改配置

crontab -e 

格式为:分 时 日 月 星期几 [命令]

*号表示every

## Output of the crontab jobs (including errors) is sent through# email to the user the crontab file belongs to (unless redirected).## For example, you can run a backup of all your user accounts# at 5 a.m every week with:# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/## For more information see the manual pages of crontab(5) and cron(8)## m h dom mon dow command59 23 * * * /home/qq/anaconda3/bin/python /home/qq/test.py

注意,一定要用绝对路径。否则可能会执行失败。

这个编辑器比较神奇,ctrl+x离开,会提示是否保存,按y确定即可。

 

 

离开后,

crontab -l

查看是否已写入命令。

 

2、更本质的方法 vim /etc/crontab

这个方法的神奇之处在于,你甚至可以设置执行该命令的user。

如下文我使用qq来执行,也可以用root之类的。

# /etc/crontab: system-wide crontab# Unlike any other crontab you don't have to run the `crontab'# command to install the new version when you edit this file# and files in /etc/cron.d. These files also have username fields,# that none of the other crontabs do.SHELL=/bin/shPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin# m h dom mon dow user command59 23 * * * qq /home/qq/anaconda3/bin/python /home/qq/test.py

注意,一定要用绝对路径。否则可能会执行失败。

然后使用: wq! 保存退出。

 

四、重启cron服务

sudo service cron restart

 

五、查看建立成功的定时任务: 

crontab -l   

可以看到当前用户下的定时任务

 

六、删除定时任务: 

crontab -r   

回车,再次在命令行输入: 

crontab -l 

,提示:“no crontab for admin”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473210.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 940. 不同的子序列 II(动态规划)

文章目录1. 题目2. 解题1. 题目 给定一个字符串 S,计算 S 的不同非空子序列的个数。 因为结果可能很大,所以返回答案模 10^9 7. 示例 1: 输入:"abc" 输出:7 解释:7 个不同的子序列分别是 &qu…

[Jmeter]Jmeter环境搭建

Jmeter环境搭建 1、 拷贝 \\szpc1450\apache-jmeter-2.7 整个目录到本机(我是放在D盘,以下路径说明以D盘为例) 2、 拷贝\\szpc1450\Tools\autotest softwares\jdk-6u11-windows-i586-p.exe到本机之后进行安装 安装完毕之后添加环境变量 JAVA_HOME C:\Program File…

Python获取磁盘使用信息,python获取GPU信息,python根据进程号获取进程信息,pynvml 获取GPU信息,psutil 获取进程信息,系统信息等

一、工具:psutil模块 psutil是一个跨平台模块,试用相应方法可以直接获取计算机CPU,内存,磁盘,网络等资源使用情况;可以使用我们学习知识与这模块用来做系统监控,性能分析;如果大家熟…

LeetCode 907. 子数组的最小值之和(单调栈)

文章目录1. 题目2. 解题1. 题目 给定一个整数数组 A,找到 min(B) 的总和,其中 B 的范围为 A 的每个(连续)子数组。 由于答案可能很大,因此返回答案模 10^9 7。 示例: 输入:[3,1,2,4] 输出&a…

Python环境下,提高pip安装库速度的方法!

一、前言 学习 Python 的话,仅掌握标准库是远不够的,有很多好用的第三方库我们也需要用到的 大家发现 pip install 包名 的方式 安装第三方库的时候,下载速度很慢,有时还会超时,遇到第三方库比较大时候,…

静态变量与静态方法

1.静态变量在C#程序中,没有全局变量的概念,这意味着所有的成员变量只有该类的实例才能操作这些数据,这起到了“信息隐藏”的作用。但有些时候,这样做却不是个明智的选择。假设我们要定义一个图书类,要求该类…

LeetCode 792. 匹配子序列的单词数(二分查找)

文章目录1. 题目2. 解题1. 题目 给定字符串 S 和单词字典 words, 求 words[i] 中是 S 的子序列的单词个数。 示例: 输入: S "abcde" words ["a", "bb", "acd", "ace"] 输出: 3 解释: 有三个是 S 的子序列的单词: "…

利用Python从字幕网上下载自己所需要的字幕(热门电影、美剧等)

一、前言 主要需求:利用python从字幕库网站上下载字幕 字幕网址:http://www.zimuku.la/ 二、方法: 1、打开网站,搜索自己所需要的字幕: 2、开始写代码: a、配置标头,手动输入下载的字幕名字…

ASP.NET开发,简化与封装

微软的ASP.NET的开发,就是面向对象的编程,当然前端也能体验至面向对象的话,使用Web控件也必须的。任一控件,我们均可以在后端.aspx.cs或.aspx.vb程序中new一个对象出来。很多场合里,在开发ASP.NET开发中,后…

调用Django中的API时,使用Pycharm给后端view打断点的方法

一、前言 使用Pycharm写后端很便捷,但是项目运行后,无法找到简洁的debug方法,本文主要以图文形式,说明一下利用Postman与Pycharm来给项目debug 二、方法 1、使用Pycharm打开项目文件,点击右上角,编辑配置文…

[Kaggle] Spam/Ham Email Classification 垃圾邮件分类(BERT)

文章目录1. 数据处理2. 下载预训练模型3. 加载数据4. 定义模型5. 训练6. 提交测试结果练习地址:https://www.kaggle.com/c/ds100fa19 相关博文: [Kaggle] Spam/Ham Email Classification 垃圾邮件分类(spacy) [Kaggle] Spam/Ham E…

python 中main函数总结

Python使用缩进对齐组织代码的执行,所有没有缩进的代码(非函数定义和类定义),都会在载入时自动执行,这些代码,可以认为是Python的main函数。 每个文件(模块)都可以任意写一些没有缩进…

python从图片里提取主要颜色

一、需求: 从一张图片里提取主要的几种颜色 二、效果: 三、代码 from PIL import Image, ImageDraw, ImageFontdef get_dominant_colors(infile):image Image.open(infile)# 缩小图片,否则计算机压力太大small_image image.resize((80, …

LeetCode 790. 多米诺和托米诺平铺(动态规划)

文章目录1. 题目2. 解题1. 题目 有两种形状的瓷砖&#xff1a; 一种是 2x1 的多米诺形&#xff0c; 另一种是形如 “L” 的托米诺形。 两种形状都可以旋转。 XX <- 多米诺XX <- "L" 托米诺 X给定 N 的值&#xff0c;有多少种方法可以平铺 2 x N 的面板&…

Django后端编辑图片提取主要颜色API

一、需求 前端页面需要调用后端API&#xff0c;实现获取主要颜色json数据 二、图片效果 三、代码实现&#xff1a; # Create your views here. import os from django.core.files.storage import default_storage from django.http import HttpResponse, JsonResponse from …

js:获取本周日期

<html> <head> <script> function formOnload() { //按周日为一周的最后一天计算var date new Date();var this_day date.getDay(); //今天是这周的第几天var step_s -this_day1; //上周日距离今天的天数&#xff08;负数表示&#xff09;if (this_day 0…

LeetCode 898. 子数组按位或操作(前缀和思想)

文章目录1. 题目2. 解题2.1 超时解2.2 正解1. 题目 我们有一个非负整数数组 A。 对于每个&#xff08;连续的&#xff09;子数组 B [A[i], A[i1], ..., A[j]] &#xff08; i < j&#xff09;&#xff0c;我们对 B 中的每个元素进行按位或操作&#xff0c;获得结果 A[i] …

Linux命令行配置静态IP地址

一、前言 IP地址分为了A-E共计5类地址&#xff0c;其中A、B、C在全球范围内统一分配&#xff0c;D、E为特殊地址。 A类地址&#xff1a;第一段为网络号&#xff0c;剩下三段都是主机号&#xff0c;最大主机数1600W&#xff0c;私有IP地址是10.0.0.0-10.255.255.255 B类地址&…

C#中用委托实现C++的回调函数

C中抓图回调函数 void (CALLBACK* DisplayCBFun)(long nPort,char * pBuf,long nSize,long nWidth,long nHeight,long nStamp,long nType,long nReceaved)); C#中定义为委托 public delegate void DisplayCBFun(int nPort, IntPtr pBuf, int nSize, int nWidth, int nHeight, …

天池 在线编程 回合制游戏(前缀和)

文章目录1. 题目2. 解题1. 题目 QW 是一个回合制游戏的玩家&#xff0c;今天他决定去打怪。 QW 在一场战斗中会碰到 n 个怪物&#xff0c;每个怪物有攻击力 atk[i]&#xff0c;每回合结束时如果第 i 个怪物还活着&#xff0c;就会对 QW 造成 atk[i] 的伤害。 QW 只能在每回合…