Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux利用Crontab执行定时任务

Linux利用Crontab执行定时任务

作者头像
鹏程
发布于 2023-05-02 02:22:53
发布于 2023-05-02 02:22:53
2.4K00
代码可运行
举报
文章被收录于专栏:Pengcheng's BlogPengcheng's Blog
运行总次数:0
代码可运行

简介

工具型软件cron是一款类Unix的操作系统下的基于时间的任务管理系统。用户们可以通过cron在固定时间、日期、间隔下,运行定期任务(可以是命令和脚本)。cron常用于运维和管理,但也可用于其他地方,如:定期下载文件和邮件。cron该词来源于希腊语chronos(χρόνος),原意是时间。

通常,任务时间表(crontab)文件储存的指令被crond守护进程激活,守护进程在后台运行,并每一分钟检查是否有定期的作业需要执行。这类作业一般称为cron jobs

我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。

  • /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
  • /etc/crontab 这个文件负责调度各种管理和维护任务。
  • /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
  • 我们还可以把脚本放在 /etc/cron.hourly/etc/cron.daily/etc/cron.weekly/etc/cron.monthly 目录中,让它每小时/天/星期、月执行一次。

使用

Crontab常用命令格式如下

此处内容需要评论回复后方可阅读

如何让一个定时任务一次执行多个命令

多个命令可以放在一行上,其执行情况得依赖于用在命令之间的分隔符。

如果每个命令被一个分号";"所分隔,那么命令会连续的执行下去

如果每个命令被 && 号分隔,那么这些命令会一直执行下去,如果中间有错误的命令存在,则不再执行后面的命令,没错则执行到完为止

如果每个命令被双竖线(||)分隔符分隔,如果命令遇到可以成功执行的命令,那么命令停止执行,即使后面还有正确的命令则后面的所有命令都将得不到执行。假如命令一开始就执行失败,那么就会执行 || 后的下一个命令,直到遇到有可以成功执行的命令为止,假如所有的都失败,则所有这些失败的命令都会被尝试执行一次

为什么有的定时任务的命令没有被执行?

可能是Crontab没有找到相关的二进制文件,你需要在命令中明确指定相关命令的二进制文件的位置。

Docker命令为例,假设你想要执行 docker cp /etc/localtime bitwardenrs:/etc/localtime ,它在命令行中执行没有任何问题,但是在crontab里面可能会出问题,原因就是crontab不知道docker在哪里。

那么如何明确告诉Crontab相应的文件位置呢?以上面的docker命令为例,我们怎么知道这个docker是哪里的docker?

方法很简单:使用which命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
which docker

如此一来我们便得知了docker的位置了,那么命令换成 /usr/bin/docker cp /etc/localtime bitwardenrs:/etc/localtime 就没问题了。

如何查看crontab执行日志

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tail -f /var/log/cron

实例

此处内容需要评论回复后方可阅读

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023年03月08日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PyQt5安装与使用
最近偶尔会写一些小工具提升项目组的效率,由于与物理设备交互的中间模块是基于 Python 的,用 Java 难以做到与之通信,为了方便大家日常使用,所以盯上了 Python GUI 工具,试了几个 GUI 框架,最终还是看上了 PyQt5 这个使用较多,文档相对较全的工具~
幻影龙王
2021/08/22
2K0
PyQt5安装与使用
python pyqt5弹出子窗体
from PyQt5 import QtCore, QtGui, QtWidgets import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QDialog from PyQt5.QtGui import QPainter,QPixmap
用户5760343
2019/07/05
1.8K0
【说站】python PyQt5如何实现窗口功能
1、PyQt是制作GUI应用程序的工具包。Python编程语言与Qt库的成功融合。
很酷的站长
2022/11/23
1.1K0
【说站】python PyQt5如何实现窗口功能
PyQt5 基本窗口控件(绘图类 / 拖拽 / 剪贴板 / 日历时间 / 菜单、工具、状态栏 / 打印)
learn from 《PyQt5 快速开发与实战》 https://doc.qt.io/qtforpython/index.html https://www.riverbankcomputing.com/static/Docs/PyQt5
Michael阿明
2022/05/10
2K0
PyQt5 基本窗口控件(绘图类 / 拖拽 / 剪贴板 / 日历时间 / 菜单、工具、状态栏 / 打印)
python+pycharm+pyqt5安装教程「建议收藏」
现在教大家在Windows系统下如何安装Python + PyCharm + PyQt5
全栈程序员站长
2022/09/25
4.2K0
python+pycharm+pyqt5安装教程「建议收藏」
Qt Designer界面设计器简介
   我们在制作 UI 界面的时候,一般可以通过UI制作工具和纯代码编写两种方式来实现。在 PyQt5 中,也可以采用这两种方式。在 PyQt5 中我们使用 Qt Designer 工具来制作 UI 界面。
星星在线
2019/05/28
8.3K1
python pyqt5 捕获鼠标键盘事件
import sys from PyQt5.QtCore import (QEvent, QTimer, Qt) from PyQt5.QtWidgets import (QApplication, QMenu, QWidget) from PyQt5.QtGui import QPainter
用户5760343
2019/07/22
4.2K0
用python qt5写一幅对联
用PyQt5库,就是qt在python语言环境的库。通过库提供的qt接口实现写对联这个事情。
mariolu
2024/04/12
2540
PyQt5-Qt Designer控件之间的伙伴关系和Tab顺序如何设置?
虫无涯
2023/10/13
5340
Python 图形界面框架 PyQt5 使用指南!
使用Python开发图形界面的软件其实并不多,相对于GUI界面,可能Web方式的应用更受人欢迎。但对于像我一样对其他编程语言比如C#或WPF并不熟悉的人来说,未必不是一个好的工具。
快学Python
2021/12/13
9K0
Python 图形界面框架 PyQt5 使用指南!
python qtdesigner 拖拽工具
在PyQt中编写UI界面可以直接通过代码来实现,也可以通过Qt Designer来完成。Qt Designer的设计符合MVC的架构,其实现了视图和逻辑的分离,从而实现了开发的便捷。Qt Designer中的操作方式十分灵活,其通过拖拽的方式放置控件可以随时查看控件效果。Qt Designer生成的.ui文件(实质上是XML格式的文件)也可以通过pyuic5工具转换成.py文件。 Qt Designer随PyQt5-tools包一起安装,其安装路径在 “Python安装路径\Lib\site-packages\pyqt5-tools”下。 若要启动Qt Designer可以直接到上述目录下,双击designer.exe打开Qt Designer;或将上述路径加入环境变量,在命令行输入designer打开;或在PyCharm中将其配置为外部工具打开。 下面以PyCharm为例,讲述PyCharm中Qt Designer的配置方法。
用户5760343
2019/07/05
2.5K0
micropython教程(Python集成开发环境)
Eric6官网:http://eric-ide.python-projects.org/
全栈程序员站长
2022/08/01
3.1K0
micropython教程(Python集成开发环境)
PyQt5-Qt Designer中如何设置信号与槽?
虫无涯
2023/10/18
1.1K0
讲解pyqt5 opengl demo
PyQt5 是一个基于 Python 的 GUI 库,它提供了丰富的功能来创建图形用户界面。其中的 QOpenGLWidget 类可以用来集成 OpenGL 渲染器,实现基于 OpenGL 的图形和动画效果。在本篇文章中,我们将讲解如何使用 PyQt5 创建一个简单的 OpenGL Demo。
大盘鸡拌面
2023/12/22
7860
PyQt5开发环境搭建 1.2 简单的例子
(6)在Qt Creator中使用Go to Slot对话框为组件的信号生成槽函数框架,复制函数名到Eirc6中定义槽函数并编写实现代码
会洗碗的CV工程师
2023/02/26
1.5K0
PyQt5开发环境搭建 1.2 简单的例子
相关推荐
PyQt5安装与使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验