Ubuntu22.04中定时执行任务(cron)设置
liuian 2025-05-23 18:31 5 浏览
做这个实验,主要涉及内容如下:
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程序的输出内容正常。
- 上一篇:sed 命令快速入门
- 下一篇:linux shell 笔记——1
相关推荐
- 10分钟实现PDF转Word神器!看DeepSeek如何用Python解放打工人
-
开篇痛点每个被PDF折磨过的职场人都懂——领导发来的扫描件要修改,手动抄到Word需要2小时;网上下载的报告想复制数据,却变成乱码…今天我们用Python+DeepSeek,10分钟打造一个智能转换工...
- 第12天 | 12天搞定Python,word和pdf
-
其实,Python除了对excel的支持很nice之外,对word、ppt和pdf也不赖的,上一篇《第12天|12天搞定Python,让excel飞起来》说了excel方面的内容,这一篇补上Py...
- 用python轻松操作excel、word、pdf吗?这篇文章教会你!拿走不谢
-
你会用python操作excel、word、pdf吗?不会也没关系,这篇文章教会你~【文末领取】案例篇幅有限,给大家准备了电子版PDF获取方式:...
- Python开发打印服务(1)
-
Python开发打印服务(1)1.需求背景在项目开发中,我们经常会遇到打印预览、打印的需求。比如:我们在开发进销存或者其他系统应用时,经常会按照客户的需求来定制报表等。在Web项目中,实现打印预览...
- 零代码编程:用ChatGPT将PDF文件的表格批量转为Excel表格
-
电脑中有几百个PDF文件,文件内容格式一致,每个PDF文件第一页是一个表格。想把这几百个PDF文件里面的表格都提取出来,转为excel表,该怎么办?打开ChatGPT(一定要用GPT4,编程能力很强。...
- 用python操作excel、word、pdf非常迅速方便,迅速教会你
-
你会用python操作excel、word、pdf吗?不会也没关系,这篇文章教会你~【文末领取】案例篇幅有限,给大家准备了电子版PDF获取方式:...
- PDF转换技巧:如何免费将 PDF 转换为 Excel
-
随着数字文档的使用不断增加,对高效和值得信赖的文档转换工具的需求也在增加。将PDF文件转换为Excel电子表格(XLS)可能具有挑战性,但这篇文章旨在缓解这些困难。这是带有分步说明的指南。...
- PDF转Excel要收费?python几行代码帮你免费搞定(附代码)
-
写在前面经常在学习或工作中需要从PDF获取一些表格数据,直接用PDF阅读器复制的话,很难复制出来,使用PDF转Excel的软件,又需要收费。这时候,可以使用我们强大的python,几行代码就能把pdf...
- python将PDF格式文档转换为excel文档
-
首先安装pdfplumber库pipinstallpdfplumberopenpyxl然后转换#导入两个模块importpdfplumberimportpandasaspd...
- 用DEEPSEEK写PDF转为Excel 程序
-
今天学校发了《2027通用版普通高校拟在山东招生专业(类)选考科目要求》(本科)文件为PDF版要转为化Excel用DEEPSEEK开发过程提问:写一个把PDF内容按着原来格式转化为EXCELL表格电脑...
- 用DeepSeek+Trae 自己写PDF表格转为EXCEL表格
-
如何将下面PDF表格转为EXCEL能更好统计在TRAE提问:新建窗口-选择文件夹-写一个PDF转excel电脑程序:样式不变,界面有选择文件,有输出文件,显示进度及页码,开始,暂停,退出,实现所...
- Python一行代码实现PDF转Excel
-
第三方包tabula工具适用于从PDF中提取可复制(非图片格式)的表格数据,并输出表格安装pipinstalltabula-py函数调用df=tabula.read_pdf("PDF文件...
- Python教程:python字典zip函数用法 - 学习如何操作字典
-
知识星球:写代码那些事如果你有收获|欢迎|点赞|关注|转发这里会定期更新|大厂的开发|架构|方案设计这里也会更新|如何摸鱼|抓虾欢迎来到写代码那些事!在Python编程中,字典(Dictionary)...
- python中元组,列表,字典,集合删除项目方式的归纳
-
九三,君子终日乾乾,夕惕若,厉无咎。在使用python过程中会经常遇到这四种集合数据类型,今天就对这四种集合数据类型中删除项目的操作做个总结性的归纳。列表(List)是一种有序和可更改的集合。允许重复...
- 列出列表中所有元素(去重)
-
方法1:直接使用集合去重(无序)n=[3,5,2,5,3,7]unique_list=list(set(n))print(unique_list)#输出可能为[2,3,...
- 一周热门
-
-
Python实现人事自动打卡,再也不会被批评
-
Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控
-
一个解决支持HTML/CSS/JS网页转PDF(高质量)的终极解决方案
-
【验证码逆向专栏】vaptcha 手势验证码逆向分析
-
再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
-
网页转成pdf文件的经验分享 网页转成pdf文件的经验分享怎么弄
-
C++ std::vector 简介
-
python使用fitz模块提取pdf中的图片
-
《人人译客》如何规划你的移动电商网站(2)
-
Jupyterhub安装教程 jupyter怎么安装包
-
- 最近发表
-
- 10分钟实现PDF转Word神器!看DeepSeek如何用Python解放打工人
- 第12天 | 12天搞定Python,word和pdf
- 用python轻松操作excel、word、pdf吗?这篇文章教会你!拿走不谢
- Python开发打印服务(1)
- 零代码编程:用ChatGPT将PDF文件的表格批量转为Excel表格
- 用python操作excel、word、pdf非常迅速方便,迅速教会你
- PDF转换技巧:如何免费将 PDF 转换为 Excel
- PDF转Excel要收费?python几行代码帮你免费搞定(附代码)
- python将PDF格式文档转换为excel文档
- 用DEEPSEEK写PDF转为Excel 程序
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- table.render (33)
- uniapp textarea (33)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- react-admin (33)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)