第1个必会服务-定时任务

news/2025/3/17 21:56:58/文章来源:https://www.cnblogs.com/liaofy/p/18777796

1.定时任务注意事项(箴言)

1.1.增加注释

书写定时任务的时候,尽量添加上一个注释.

用于说明这条定时任务作用.

1.2.尽量使用脚本

定时任务未来避免一些故障,推荐使用脚本.

调试脚本的方法:

sh -x 或bash -x ,显示脚本执行过程.

有+开头的表示脚本背后执行的过程.

如果开头没有+,表示输出.

[root@myvps scripts]# sh -x backup-conf-v2.sh 
+ backup_dir=/backup/
++ date +%F_%w
+ time=2025-03-13_4
+ tar zcf /backup//etc-2025-03-13_4.tar.gz /etc/
tar: 从成员名中删除开头的“/”
您在 /var/spool/mail/root 中有新邮件

1.3.定时任务的文件,脚本使用绝对路径

  • 书写定时任务的时候,相关文件要使用绝对路径.
/server/scripts/backup-etc.sh

image

1.4.命令使用绝对路径?

  • 定时任务中直接写命令,可以加上绝对路径. 参考2.2-2) 方案🅰️

  • 定时任务中运行脚本,脚本开头可以重新设置PATH环境变量. 参考2.2-2) 方案🅱️

1.5.定时任务中执行的命令或脚本定向到空或追加到文件

.定时任务直接书写的时候%有特殊含义#定向到空
#1. 同步时间 by lidao996 at 20221111
*/2 * * * * /sbin/ntpdate ntp1.aliyun.com >/dev/null  2>&1#追加到文件
#4. echo
* * * * * echo oldboy >> /tmp/lidao.txt  2>&1
#2. 定时备份 /etc/ 目录 by lidao996 at xxxx  
00 01 * * * /bin/sh -x /server/scripts/backup-etc.sh >> /tmp/script.log  2>&1

2.定时任务故障案例

2.1.定时任务直接书写的时候%有特殊含义

  • %回车.
  • 去掉特殊含义需要使用\
如果使用脚本,就没有这个问题了

2.2.定时任务关于命令路径的故障

在定时任务运行命令或脚本的时候,只能识别到/bin或/usr/bin目录下面的命令.

只要不在这些目录下面的命令,就要使用绝对路径或者重新定义下PATH环境变量

故障案例:

现象: 命令行执行命令或脚本是成功的,交到了定时任务中执行,提示命令找不到.

原因: 定时任务运行脚本的时候或命令的时候,只能识别/bin和/usr/bin目录下面的命令.其他的命令无法识别

解决方案:

🅰️简单粗暴,遇到这种命令,直接写绝对路径.

🅱️治本,在脚本开头 重新定义下PATH环境变量或重新加载下PATH环境变量.

定时任务识别的命令的路径:

PATH linux环境变量,存放命令的位置

linux会在PATH路径中查找,如果有则执行.如果没有提示command not found/ no such file or directory

  • 使用解决方案🅰️
cat /servers/scripts/ip.sh
#!/bin/bashhostname
/sbin/ip a s eth0
  • 使用解决方案🅱 重新定义PATH
[root@myvps ~]# cat /servers/scripts/ip.sh 
#!/bin/bash
export PATH=/usr/bin:/opt/cmatrix/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/.local/bin:/root/binip a s eth0
ipconfig eth0
  • 使用解决方案🅱 重新加载PATH变量
[root@myvps ~]# cat /server/scripts/ip.sh
#!/bin/bash
source /etc/profile #重新加载PATH环境变量
hostname
ip a s eth0

2.3.定时任务没有定向到空或追加到文件故障案例

现象:

邮件服务开启: 不断收到邮箱 You have new mail in /var/spool/mail/root

邮件服务关闭: 一些邮件的临时目录不断堆积小文件. /var/spool/postfix/maildrop

原因:

定时任务运行命令或脚本的时候,命令或脚本有输出,定时任务就会通过邮件形式发送给root.

解决:

定时任务中命令或脚本定向到空或追加到文件

#定向到空
#1. 同步时间 by lidao996 at 20221111
*/2 * * * *  /sbin/ntpdate  ntp1.aliyun.com  >/dev/null 2>&1#追加到文件
#4. echo
* * * * * echo oldboy >> /tmp/lidao.txt  2>&1
#2. 定时备份 /etc/ 目录 by lidao996 at xxxx
00 01 * * * /bin/sh -x /server/scripts/backup-etc.sh &>> /tmp/script.log 

3.使用案例

3.1定时备份/etc/目录到/backup以ip地址命名的目 录中

  • 书写脚本+变量

    • 取出ip存放变量 ✅

    • 取出时间存放到变量 ✅

    • 创建以ip命名目录 ✅

    • 打包压缩存放到这个ip地址命名的目录中,压缩包加上时间 ✅

  • 书写定时任务(每分钟)

  • 书写定时任务(改为指定时间)

image

3.2.定时系统巡检(定时输出系统基本信息)写入 到/tmp/sys.log中.

  • 通过手动或自动方式,获取所有主机的基本信息.
  • 未来这个操作可以通过监控实现.
主机名信息(主机名)
ip地址
负载信息(0 0 0)
内存信息(内存多大,用了多少,剩余多少)
cpu信息(核心数)
磁盘信息(磁盘使用多少,剩余多少)
进程信息(一共多少进程,几个运行,几个挂起,几个僵尸)
  • 写入到/tmp/sys.log文件的格式
#################################
主机名: myvps   ip地址: 10.0.0.200
#################################
负载信息
最近1分钟:   0
最近5分钟:   0
最近15分钟:  0
#################################
内存信息(单位kb)
总计内存:   2000000
内存使用了多少:  200000
内存使用率:    10%
#################################
swap信息
swap总大小:   200000
swap使用大小:  0
swap使用率:    0
#################################
磁盘信息
几块硬盘:  1
根分区大小: 20G
根分区使用率: 10%
################################
进程信息
进程总数:    100
运行中进程:   2
挂起进程数量: 0
僵尸进程数量: 0
################################
  • 步骤:

    • 思路01:

      • 定义变量
      • 最后统一输出
    • 思路02:✅

      • 根据模块定义变量
      • 每个模块输出
  • 流程

image

image

  • 实际结果

image

3.3.发送邮件

  • 邮件

    • 最简单一种发送方式
  • 配置发件人:163

    • 获取:授权码(用户密码)

    • linux配置/etc/mail.rc

    • 完成

      HRQPVKNACQMQOLYZ 只是一个验证码

  • 收件人:qq

  • 通过命令发送

  • 配置发件人

    • 获取授权码

image

  • 配置linux mail.rc 配置发件人信息
vim /etc/mail.rc #写到最后
#未加密的发送方式通过25端口,会被公有云封掉.
cat >>/etc/mail.rc <<EOF
set from=lidao996@163.com
set smtp=smtp.163.com
set smtp-auth-user=lidao996@163.com
set smtp-auth-password=BGRCTL CZXIT
set smtp-auth=login
EOF#加密的方式465端口
cat >>/etc/mail.rc <<EOF
set nss-config-dir=/etc/pki/nssdb/
set smtp-user-starttls
set ssl-verify=ignore
set from=lida996@163.com
set smtp=smtps:smtp.163.com:465
set smtp-auth-user=lido996@163.com
set smtp-auth-password=aaaa
set smtp-auth=login
EOF
set from=lidao996@163.com  #配置发件人
set smtp=smtp.163.com      #配置使用163发送邮件 如果是加
密smtps:smtp.163.com:465
set smtp-auth-user=lidao996@163.com    #用户名:邮箱名字
set smtp-auth-password=BGRCTLKQDU IT   #授权码
set smtp-auth=login                    #认证形式login
#下面3行用于配置加密方式进行传输
set nss-config-dir=/etc/pki/nssdb/
set smtp-user-starttls
set ssl-verify=ignore

配置加密方式发送邮件错误: Error in certificate: Peer's certificate issuer is not recognized

解决方法:

echo -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN
CERTIFICATE-/,/-END CERTIFICATE-/p' > /etc/pki/nssdb/163.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d /etc/pki/nssdb/ -i /etc/pki/nssdb/163.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d /etc/pki/nssdb/ -i /etc/pki/nssdb/163.crt
certutil -L -d /etc/pki/nssdb/
cd /etc/pki/nssdb/
certutil -A -n "GeoTrust SSL CA - G3" -t
"Pu,Pu,Pu" -d ./ -i 163.crt
  • 发送邮件
cat /backup/result.log |mail -s "今日巡检的结果"  youjiu_linux@qq.com
mail -s '巡检' youjiu_linux@qq.com < backup/result.log
  • 发送邮件带上附件
echo "巡检信息在附件" |mail  -s "巡检结果"  -a /backup/result.log     youjiu_linux@qq.com
  • 写入定时任务
    • 脚本:
      • 获取系统各种指标与信息 脚本
      • 存放到文件 命令
      • 把文件内容通过邮件发送走
脚本关系
sh /server/scripts/send-mail.sh调用执行sh /server/scripts/sys-info.sh 脚本上面脚本的结果写入到/backup/result.log文件中通mail命令把result.log发送给对应的用户
  • 测试定时任务
#6. 系统巡检并发送邮件
* * * * * sh /server/scripts/send-mail.sh &>/dev/null

3.4.表格

  • csv表格:通过逗号分割的内容

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

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

相关文章

攻防世界 level2 WriteUp

WriteUp 题目信息 来源:攻防世界 名称:level2 分类:Pwn 描述:菜鸡请教大神如何获得flag,大神告诉他‘使用面向返回的编程(ROP)就可以了’题目链接: https://adworld.xctf.org.cn/challenges/list解题思路 首先使用DIE对文件进行查壳,发现这是一个无壳的32位ELF文件。所以…

4、常量

常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。 常量可以是任何的基本数据类型,比如整数常量、浮点常量、字符常量,或字符串字面值,也有枚举常量。 常量就像是常规的变量,只不过常量的值在定义后不能进行修改。 常量可以直接在代码中使用,也可以通过…

【视频讲解】R语言逐步回归模型对电影票房、放映场数、观影人数预测可视化

全文链接:https://tecdat.cn/?p=34335 原文出处:拓端数据部落公众号 分析师:Junjie Tan讲解|R语言回归模型分析电影票房影响因素本文通过利用回归模型帮助客户对电影的票房数据(以及放映场数,观影人数)进行了研究,确定了决定电影的票房的重要因素。并讲述、论证了预测电…

实现使用vue3完成后台管理系统的基础页面搭建

<template><div><!-- 头部开始 --><div style="height: 60px; background-color: #8686e0; display: flex; align-items: center"><div style="width: 200px; display: flex; align-items: center; padding-left: 15px"><…

pytthon的基本运用(8)——模块

一、模块的介绍 (1)python模块,是一个python文件,以一个.py文件,包含了python对象定义和pyhton语句 (2)python对象定义和python语句 (3)模块让你能够有逻辑地组织你的python代码段。 (4)把相关的代码分配到一个模块里能让你的代码更好用,更易懂 (5)模块能定义函数…

服务器跑实验

项目名称——基于机器学习与深度学习的贷款批准预测 项目来源:和鲸社区https://www.heywhale.com/mw/project/670f61d10ebb9f7a69c5144c 项目数据集:有两个【上传不了博客】大概长这个样:数据说明:实验环境:tensorflow、shap 实验结果:实验过程以及遇到的问题和解决方案:…

工作面试必备:SQL 中的各种连接 JOIN 的区别总结!

前言 尽管大多数开发者在日常工作中经常用到Join操作,如Inner Join、Left Join、Right Join等,但在面对特定查询需求时,选择哪种Join类型以及如何使用On和Where子句往往成为一大挑战。特别是对于初学者而言,这些概念可能显得抽象且难以区分。在实际应用中,错误地使用Join类…

攻防世界 hello_pwn WriteUp

WriteUp 题目信息 来源:攻防世界 名称:hello_pwn 分类:Pwn 描述:pwn!,segment fault!菜鸡陷入了深思题目链接: https://adworld.xctf.org.cn/challenges/list解题思路 首先使用DIE对文件进行查壳,发现这是一个无壳的64位ELF文件,所以使用64位IDA对该文件进行反汇编。接…

《95%开发者不知道的vue.config.js高阶玩法》手撕Webpack配置链/SSR优化/多页应用,3倍构建效率实战方案

Vue工程化配置指南:vue.config.js深度解析 一、初始化配置文件 在Vue CLI工程根路径下创建配置文件: 项目层级示意: your-project/ ├── src/ ├── public/ ├── package.json └── vue.config.js # 新增配置文件基本模板结构: module.exports = {// 工程化配置区…

ElevenLabs 33 亿美元估值的秘密:技术驱动+用户导向的「小熊软糖」团队丨Voice Agent 学习笔记

图:Emmanuel Ashun / Endeavor大家好,这是 Voice Agent 学习笔记系列的第 23 篇,我是课代表十三🧑‍💻。ElevenLabs 是一家专注于人工智能语音技术的创新公司,致力于重新定义音频体验。凭借其突破性的语音克隆和配音工具,ElevenLabs 正在重塑音频内容创作的未来,让高…

分布式服务幂等性问题如何解决

在分布式系统中解决幂等性问题是保证系统健壮性的关键挑战之一。以下从原理到实践的完整解决方案,涵盖7种核心模式及落地实现细节:一、幂等性问题本质 核心定义:相同请求多次执行对系统状态的影响 = 执行一次的结果 产生场景:网络抖动导致客户端重复提交 服务端超时后重试机…

一图看懂|2025年经济社会发展10大主要任务

一图看懂|2025年经济社会发展10大主要任务