16.linux计划任务管理

linux计划任务管理

文章目录

  • linux计划任务管理
    • 1. crond计划任务概述
    • 2. crond配置文件详解
    • 3. crond计划任务管理
    • 4. crond配置编写实例
    • 5. crond计划任务调试

1. crond计划任务概述

什么是计划任务,计划任务类似于我们平时生活中的闹钟。
Linux系统的计划任务服务crond可以满足周期性执行任务的需求。
crond进程每分钟会处理一次计划任务, 计划任务主要是做一些周期性的任务目前最主要的用途是定时备份数据

Schedule one-time tasks with at.   一次性调度执行 at
Schedule recurring jobs with cron. 循环调度执行 cron
Schedule recurring system jobs. 所有计划任务执行中的输出都会以邮件的方式发送给指定用户, 除非重定向//循环调度执行cron 进程每分钟会处理一次计划任务
[root@wangqing ~]# systemctl status crond
[root@wangqing ~]# ps aux |grep crond
root      1201  0.0  0.0 126264  1640 ?        Ss   11:15   0:00 /usr/sbin/crond -n

计划任务分为以下两种情况:

  • 系统级别的定时任务:

    清理系统缓存
    临时文件清理
    系统信息采集
    日志文件切割

  • 用户级别的定时任务:

    定时同步互联网时间
    定时备份系统配置文件
    定时备份数据库文件

2. crond配置文件详解

文件              说明
/etc/crontab        //crontab配置文件
/etc/cron.deny      //该文件中所列用户不允许使用crontab命令
/var/spool/cron/*   //所有用户定时文件都存放此目录,文件以用户名命名
/var/log/cron       //定时任务执行后的日志文件,可用来回溯

3. crond计划任务管理

crond任务管理

参数          含义                指定示例
[root@wangqing ~]# crontab --help
-e      编辑crontab文件内容       crontab -e
-l      查看crontab文件内容       crontab -l
-r      删除crontab文件内容       crontab -r
-u      管理其他用户的计划任务 crontab -u wangqing -l
注意: crontab {-l -e}实际上就是在操作/var/spool/cron/username//如何进行计划任务的备份?

crond时间含义

# Example of job definition:
# .---------------- minute (0 - 59) //分钟
# |  .------------- hour (0 - 23)   //小时
# |  |  .---------- day of month (1 - 31)   //日期
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr //月份
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat  //星期
# |  |  |  |  |
# *  *  *  *  *   command to be executed// *    表示任意的(分、时、日、月、周)时间都执行
// -    表示一个时间范围段,5-7// ,    表示分隔时段,6,0,4表示周六、日、四
// */n  表示每隔n单位时间,*/1010分钟

crond编写示例

00 02 * * * command
00 02 1 * * command
00 02 14 2 * command
00 02 * * 7 command
00 02 * 6 5 command
00 02 14 * 7 command
00 02 14 2 7 command
00 02 * * * command
*  02 * * * command
* * * * *  command
* * 14 2 *  command
*/5 * * * *  command
00 02 * 1,5,8 * command
00 02 1-8 * *  command

crond书写规范

//1.为计划任务增加必要的注释
[root@wangqing ~]# crontab -l
##time sync
*/5 * * * * /usr/sbin/ntpdate time1.aliyun.com &>/dev/null//2.规范计划任务执行脚本存放的路径/scripts/
[root@wangqing ~]# crontab -l
##backup www to /backup
30 01 * * * /bin/sh /scripts/www_backup.sh &>/dev/null//3.执行shell脚本任务前加/bin/sh, 脚本结尾加&>/dev/null
//调试好后应屏蔽debug输出信息,避免产生系统垃圾占用过多inode, 如需输出日志, 可重定向至日志文件
[root@wangqing ~]# crontab -l
####backup www to /backup
30 01 * * * /bin/sh /scripts/www_backup.sh &>/tmp/www_backup.log

4. crond配置编写实例

[root@wangqing ~]# crontab -e#每天凌晨切割nginx日志
05 00 * * * /bin/bash -x /scripts/cut_nginx.sh &> /scripts/log/nginx.log#每天5点备份数据库
00 05 * * * /bin/bash -x /scripts/dump_sql.sh &>/scripts/log/mysql.log//注意:
1.我们所有的crond服务是运行的程序。而crontab命令用户用来设置定时规则的命令。
2.crond服务是企业生产工作中常用的重要服务,at很少使用,可以忽略。
3.几乎每个服务器都会用到crond服务。

5. crond计划任务调试

  1. 调整任务每分钟执行, 检测是否是否正常, 有些任务不要频繁执行
  2. 调整系统时间然后在检测任务, 生产不建议直接使用此方式
  3. 执行脚本, 将脚本执行输出写入指定日志文件, 观察日志内容是否正常
  4. 注意一些任务命令带来的问题echo “wangqing” >>/tmp/test.log &>/dev/null
  5. 命令使用绝对路径, 防止无法找到命令导致定时任务执行故障
  6. 查看/var/log/cron日志进行调试

建议: 将需要定期执行的任务写入脚本中, 建立/scripts目录统一存放脚本, 脚本中命令必须使用绝对路径,手动执行脚本检测输出是否正常, 然后将脚本加入计划任务测试, 测试后无问题将脚本输出写入对应的日志文件中即可。

计划任务添加步骤:

  1. 手动执行保留执行命令的正确结果
  2. 编写脚本
    • 脚本需要统一路径/scripts
    • 脚本开头建议填写注释信息, 包括执行时间、周期、任务
    • 脚本内容复制执行成功的命令至脚本文件中(减少每个环节出错几率)
    • 脚本内容尽可能的优化, 使用一些变量或使用简单的判断语句
    • 脚本执行的输出信息不要随意打印, 可以重定向至其他位置保留或丢入黑洞
  3. 执行脚本
    • 使用bash执行, 防止脚本没有增加执行权限(/bin/bash)
    • 执行命令以及脚本成功后并复制该命令
  4. 编写计划任务
    • 加上必要的注释信息, 人、时间、任务
    • 设定计划任务执行的周期
    • 加入执行脚本的命令
  5. 调试计划任务
    • 增加任务频率测试、调整系统时间测试(不能用于生产)
      h执行, 防止脚本没有增加执行权限(/bin/bash)
    • 执行命令以及脚本成功后并复制该命令
  6. 编写计划任务
    • 加上必要的注释信息, 人、时间、任务
    • 设定计划任务执行的周期
    • 加入执行脚本的命令
  7. 调试计划任务
    • 增加任务频率测试、调整系统时间测试(不能用于生产)
    • 检查环境变量问题、检查crond服务产生日志进行排查

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

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

相关文章

判断是否是json字符串

一、在isJson.js文件里创建一个isJson类并抛出 /*** isJson 类用于判断一个字符串是否为有效的 JSON 字符串。* class isJson* param {string} str - 要判断的字符串。* returns {boolean} 如果字符串是有效的 JSON 字符串,则返回 true;否则返回 false。…

PPT插件-大珩助手-快速构建自己的图形

绘图板-快速构建自己的图形 通过手绘的方式,快速构建自己的想法和创意,通过在PPT中插入绘图,植入背景透明的绘图,点击画笔可切换橡皮擦,可以清空画板重新绘制。 素材库-存储图形 通过素材库存储自己的图形 图形调整…

操作系统期末考复盘

简答题4题*5 20分计算题2题*5 10分综合应用2题*10 20分程序填空1题10 10分 1、简答题(8抽4) 1、在计算机系统上配置OS的目标是什么?作用主要表现在哪个方面? 在计算机系统上配置OS,主要目标是实现:方便性、有…

如何把123转换成字符串的123

在许多编程语言中,将数字123转换为字符串的"123"是非常直接的。以下是几种常见编程语言的示例: Python num 123 str_num str(num) print(str_num) # 输出: 123 JavaScript let num 123; let str_num num.toString(); console…

【WebGIS实例】(12)MapboxGL解决叠加图层的点击事件冒泡

解决方法一: 监听有冲突的图层 map.on(click, layerName, e > {e.preventDefault()console.log(上面的图层)console.log(点击的要素, e.features[0]) })// 下面的那个图层:阻止默认事件,在下面的e可以看到_defaultPrevented: false&#…

three.js 学习笔记(学习中1.10更新) |

文章目录 three.js 学习笔记基础概念透视相机 第一个three.js应用threejs画布尺寸和布局canvas画布宽高度动态变化 坐标辅助器 THREE.AxesHelper实现动画效果requestAnimationFrame时间相关属性和方法 THREE.Clock类 相机控件 轨道控制器OrbitControls 灯光点光源点光源辅助观察…

17.SELinux

SELinux 文章目录 SELinux1、SELinux简介2、SELinux的模式3、管理SELinux上下文4、bool开关 1、SELinux简介 为了保障linux系统的安全,除了firewalld防火墙外,linux系统管理员通常会控制用户和组的权限,这种基于用户和组的安全模型称之为主动…

m1 + swoole(hyperf) + yasd + phpstorm 安装和debug

参考文档 Mac M1安装报错 checking for boost... configure: error: lib boost not found. Try: install boost library Issue #89 swoole/yasd GitHub 1.安装boost库 brew install boostbrew link boost 2.下载yasd git clone https://github.com/swoole/yasd.git 3.编…

Golang 中哪些类型可以作为 map 类型的 key?

目录 可以作为 map 键的类型 不能作为 map 键的类型 最佳实践 小结 在 Go 语言中,map 是一种内置的关联数据结构类型,由一组无序的键值对组成,每个键都是唯一的,并与一个对应的值相关联。本文将详细介绍哪些类型的变量可以作为…

轻量化神奇!看3D模型格式转换工具HOOPS Exchange如何轻松实现减面操作?

现在很多CAD模型都比较复杂,有时候为了一些特殊用途(轻量化显示、布尔运算、CAE网格剖分等),需要到对原始模型进行减面操作。在HOOPS Exchange中,就提供了对模型进行减面操作支持,以下内容就是HOOPS Exchan…

亚信安慧AntDB数据库容灾复制原理

AntDB数据库作为通信运营商领域的杰出的数据服务提供者,一直以来都十分重视数据安全问题,不断通过技术进步、方案创新等方式提升数据容灾能力。在信息化的时代,数据已经成为了重要的资源,对于企业来说,如何存储和管理这…

15.vdo管理

vdo管理 文章目录 vdo管理一、VDO基本概念二、常用操作三、验证VDO卷 一、VDO基本概念 VDO(Virtual Data Optimize虚拟数据优化) 通过压缩或删除存储设备上的数据来优化存储空间。VDO层放置在现有块存储设备例如RAID设备或本地磁盘的顶部。这些块设备也…

docker微服务案例

文章目录 建立简单的springboot项目(boot3)boot2建立通过dockerfile发布微服务部署到docker容器编写Dockerfile打包成镜像运行镜像微服务 建立简单的springboot项目(boot3) 1.建立module 2. 改pom <?xml version"1.0" encoding"UTF-8"?> <…

python爬虫实战(7)--获取it某家热榜

1. 需要的类库 import requests from bs4 import BeautifulSoup import pandas as pd2. 请求榜单 def fetch_ranking_data():url "https://m.xxx.com/rankm/" #某家response requests.get(url)if response.status_code 200:return response.contentelse:print(f…

需要登录的网站爬虫详解

概述 介绍一下请求状态原理分析需要登录的网站请求特点分析登陆前后请求差异如何从接口分析一步步构建一个合理的登录爬虫巧方法解决登录 案例分析 案例一 https://login2.scrape.center/ 默认重定向导致无法获取到重定向前的cookie 案例二爬虫源码 # codingutf-8import …

计算机网络期末复习(二)

物理层 解决&#xff1a;如何在连接各种计算机的传输媒体上传输比特流&#xff0c;而不是具体的传输媒体。 传输媒体&#xff1a;比如双绞线、同轴电缆、光纤等等。 主要任务&#xff1a;确定于传输媒体接口有关的一些特性。 传输媒体 导向形 非导向形 调制解调器 数字信号 和…

LeetCode [103] 二叉树的锯齿形层序遍历

Description: 给你二叉树的根节点 root &#xff0c;返回其节点值的 锯齿形层序遍历 。&#xff08;即先从左往右&#xff0c;再从右往左进行下一层遍历&#xff0c;以此类推&#xff0c;层与层之间交替进行&#xff09;。 解法&#xff1a;基本跟102类似&#xff0c;加了一个…

杰理AC63蓝牙名修改

杰理SDK会自动从VM区域读取蓝牙名字。代码如下&#xff0c;在user_cfg.c文件里。 //-----------------------------CFG_BT_NAME--------------------------------------//ret syscfg_read(CFG_BT_NAME, tmp, 32);if (ret < 0) {log_info("read bt name err\n");}…

CSGO服务器搭建细节

在搭建CSGO服务器之前&#xff0c;我们首先需要确保电脑上已经安装好了所需的软件环境。这里我们需要安装SteamCMD和HLDSUpdateTool工具&#xff0c;并在安装之后进行相关的配置&#xff0c;才能顺利地跑起服务器。同时&#xff0c;在准备环境的同时&#xff0c;我们还要考虑服…