百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

Ubuntu22.04中定时执行任务(cron)设置

liuian 2025-05-23 18:31 21 浏览

做这个实验,主要涉及内容如下:

cronTest.py 待执行的python文件,代码会读入本地文件内容,并打印当前时间

cron_run.sh 将执行cronTest.py的语句,包装成shell

cron定时配置

本实验的设置是每3分钟,调用一次python程序,程序会打印执行时的时间。


cronTest.py

import os
import time
from datetime import datetime

current_dir = os.path.dirname(__file__) 
#!!!必须用绝对路径,否则外部路径调用时,会找不到cronRead.txt
f_name="cronRead.txt"
f_name_abs=os.path.join(current_dir, f_name)
print(f_name_abs)
now = datetime.now()
print(now)
with open(f_name_abs, "r",encoding="utf-8") as f:
    lines = f.readlines()
    print(lines)

这个程序读入python程序所在目录的cronRead.txt文件(必须用绝对路径,否则定期执行时,会找不到此文件)。并打印当前时间。

cron_run.sh

#!/bin/bash
/home/xx/miniconda3/envs/conda1/bin/python   /home/xx/crontest/bjDetectSearch/cronTest.py  

制作shell脚本,就是为cron配置时书写简便(也可以将上面的python调用,直接写到cron配置中)。python脚本是使用一个conda虚拟环境。

别忘给此shell脚本添加可执行权限:

chmod +x cron_run.sh

现在,可以拷贝cron_run.sh到任何位置,来尝试脚本执行是否正常了。

cron定时任务设置

  • 切换到root权限

sudo -i

在root权限下,下一步crontab定时任务可以执行任何命令。如果在普通用户权限下,只能执行用户权限的程序。

  • 定时任务编辑器

crontab -e 打开定时任务编辑器。如何是第一次使用,需选编辑器,第一项nano编辑器,相对比较好用。

如果选择的是nano,其快捷键示例: ^U -->ctrl+u M-E --->alt+e

ctrl+o 保存编辑结果(保存时有提示) ctrl+x 离开编辑器(如果设置的规则语法不正确,会有提示。可以重新进入修改)

将以下内容写入编辑器:

*/3 * * * * /home/zag/tmp/cron_run.sh >> /home/zag/tmp/cron_run.log 2>&1

每隔3分钟运行一次cron_run.sh脚本,并把脚本程序的输出,保存到cron_run.log文件。

  • 定时任务规则

每一行为一个定时任务,每行分为两部分

定时 待执行命令行(绝对路径) 前面加上 #就是注释掉此行任务

定时规则:

定时分5个部分:分 时 日 月 周

也就是图中的提示: m h dom(day of month) mon dow(day of week) ,取值访问如下:

特殊字符:

*在分钟位置,就是每分钟都运行。在周位置,就是每周都运行。

,用来分割同一位置的多个值。比如在第一个分钟位置: 1,7,20 就是在这三个分钟,都运行

-表示一个范围。如1-5,设置在dom的位置,就是1日到5日。

/表示间隔。

本实验要每3分钟执行一次shell脚本
*/3 * * * *       /绝对路径/cron_run.sh

每月1-10日0:0,每隔2天运行一次
0 0 1-10/2 * * /绝对路径/script.sh

每天凌晨 2 :0运行一次
0 2 * * * /绝对路径/script.sh

每小时的0分(整点)运行一次
0 * * * * /绝对路径/script.sh

每周一至周五的上午 8 点到下午 6 点,每隔 30 分钟运行一次
*/30 8-18 * * 1-5 /绝对路径/script.sh

每年 12 月 25 日早上 9 点运行
0 9 25 12 * /绝对路径/script.sh

?仅仅用于日期与星期位置。无特定值,也就是可以不考虑(仅仅是占位)。

每月15日0:0,不管是周几
0 0 15 * ?  /绝对路径/script.sh

每周一0:0分,不管是几号
0 0 ? * 1  /绝对路径/script.sh

L仅仅用于日期与星期位置。表示一个月中最后一天或最后一个星期几

每月最后一天的午夜运行
0 0 L * * /绝对路径/script.sh

每月最后一个星期五0:0运行
0 0 ? * 5L /绝对路径/script.sh

W工作日。仅仅用于日期位置。

每月15日,如果15日不是工作日,则在最近的工作日0:0运行
0 0 15W * * /绝对路径/script.sh

#仅仅用于星期位置。表示第几个星期的星期几

每月的第二个星期一0:0运行
0 0 ? * 1#2 /绝对路径/script.sh

每月的第三个星期的星期五0:0运行
0 0 ? * 5#3 /绝对路径/script.sh

编辑完成,保存规则。

  • 重启服务

systemctl restart cron 可以把cron服务重新启动一下。确保设置能加载。

systemctl status cron 确定一下cron的状态是否已经启动。

crontab -l 确定一下定时任务已经在定时表里


如果定时任务设置的是

*/3 * * * * /home/zag/tmp/cron_run.sh >> /home/zag/tmp/cron_run.log 2>&1

可以执行:

cat /var/log/syslog |grep /home/zag/tmp/cron_run.sh

等待几分钟后,执行上面命令,可以看到类似下面的内容(表示能定时调用):

Apr 25 21:33:01 aipcU1 CRON[10540]: (root) CMD (/home/zag/tmp/cron_run.sh >> /home/zag/tmp/cron_run.log 2>&1)
Apr 25 21:36:01 aipcU1 CRON[10708]: (root) CMD (/home/zag/tmp/cron_run.sh >> /home/zag/tmp/cron_run.log 2>&1)

/home/zag/tmp/cron_run.log

/home/zag/SqlObjDetectToMilvus/ObjDetectSearch/cronRead.txt
2025-04-25 21:33:01.589393
['hello cron read!!!\n']
/home/zag/SqlObjDetectToMilvus/ObjDetectSearch/cronRead.txt
2025-04-25 21:36:01.648741
['hello cron read!!!\n']

表示python程序的输出内容正常。

相关推荐

2023年最新微信小程序抓包教程(微信小程序 抓包)

声明:本公众号大部分文章来自作者日常学习笔记,部分文章经作者授权及其他公众号白名单转载。未经授权严禁转载。如需转载,请联系开百。请不要利用文章中的相关技术从事非法测试。由此产生的任何不良后果与文...

测试人员必看的软件测试面试文档(软件测试面试怎么说)

前言又到了毕业季,我们将会迎来许多需要面试的小伙伴,在这里呢笔者给从事软件测试的小伙伴准备了一份顶级的面试文档。1、什么是bug?bug由哪些字段(要素)组成?1)将在电脑系统或程序中,隐藏着的...

复活,视频号一键下载,有手就会,长期更新(2023-12-21)

视频号下载的话题,也算是流量密码了。但也是比较麻烦的问题,频频失效不说,使用方法也难以入手。今天,奶酪就来讲讲视频号下载的新方案,更关键的是,它们有手就会有用,最后一个方法万能。实测2023-12-...

新款HTTP代理抓包工具Proxyman(界面美观、功能强大)

不论是普通的前后端开发人员,还是做爬虫、逆向的爬虫工程师和安全逆向工程,必不可少会使用的一种工具就是HTTP抓包工具。说到抓包工具,脱口而出的肯定是浏览器F12开发者调试界面、Charles(青花瓷)...

使用Charles工具对手机进行HTTPS抓包

本次用到的工具:Charles、雷电模拟器。比较常用的抓包工具有fiddler和Charles,今天讲Charles如何对手机端的HTTS包进行抓包。fiddler抓包工具不做讲解,网上有很多fidd...

苹果手机下载 TikTok 旧版本安装包教程

目前苹果手机能在国内免拔卡使用的TikTok版本只有21.1.0版本,而AppStore是高于21.1.0版本,本次教程就是解决如何下载TikTok旧版本安装包。前期准备准备美区...

【0基础学爬虫】爬虫基础之抓包工具的使用

大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章,为实现从易到难全方位覆盖,特设【0基础学爬...

防止应用调试分析IP被扫描加固实战教程

防止应用调试分析IP被扫描加固实战教程一、概述在当今数字化时代,应用程序的安全性已成为开发者关注的焦点。特别是在应用调试过程中,保护应用的网络安全显得尤为重要。为了防止应用调试过程中IP被扫描和潜在的...

一文了解 Telerik Test Studio 测试神器

1.简介TelerikTestStudio(以下称TestStudio)是一个易于使用的自动化测试工具,可用于Web、WPF应用的界面功能测试,也可以用于API测试,以及负载和性能测试。Te...

HLS实战之Wireshark抓包分析(wireshark抓包总结)

0.引言Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接...

信息安全之HTTPS协议详解(加密方式、证书原理、中间人攻击 )

HTTPS协议详解(加密方式、证书原理、中间人攻击)HTTPS协议的加密方式有哪些?HTTPS证书的原理是什么?如何防止中间人攻击?一:HTTPS基本介绍:1.HTTPS是什么:HTTPS也是一个...

Fiddler 怎么抓取手机APP:抖音、小程序、小红书数据接口

使用Fiddler抓取移动应用程序(APP)的数据接口需要进行以下步骤:首先,确保手机与计算机连接在同一网络下。在计算机上安装Fiddler工具,并打开它。将手机的代理设置为Fiddler代理。具体方...

python爬虫教程:教你通过 Fiddler 进行手机抓包

今天要说说怎么在我们的手机抓包有时候我们想对请求的数据或者响应的数据进行篡改怎么做呢?我们经常在用的手机手机里面的数据怎么对它抓包呢?那么...接下来就是学习python的正确姿势我们要用到一款强...

Fiddler入门教程全家桶,建议收藏

学习Fiddler工具之前,我们先了解一下Fiddler工具的特点,Fiddler能做什么?如何使用Fidder捕获数据包、修改请求、模拟客户端向服务端发送请求、实施越权的安全性测试等相关知识。本章节...

fiddler如何抓取https请求实现手机抓包(100%成功解决)

一、HTTP协议和HTTPS协议。(1)HTTPS协议=HTTP协议+SSL协议,默认端口:443(2)HTTP协议(HyperTextTransferProtocol):超文本传输协议。默认...