Linux定时计划

定时计划

一、计划任务种类

突发性:临时决定只执行一次的任务

at:处理执行一次任务就结束

定时性:每隔一定时间需要重复执行此命令

crontab:指定任务,按照设定的周期一直循环执行

二、作用

定时任务可以用于自动备份、系统清理、监控、自动化维护等任务

三、计划任务命令使用

1. at 命令
1.1 准备
#启动
[root@localhost ~]# systemctl start atd
#查看是否开启
[root@localhost ~]# systemctl status atd
#查看是否开机自启动
[root@localhost ~]# systemctl is-enabled atd
enabled

#注意:程序后面带d都是守护进程
1.2创建计划任务
[root@localhost ~]# date 
2024年 05月 21日 星期二 02:57:54 CST
#第一种写法
[root@localhost ~]# at 02:59
at> mkdir wangchunlong
at> touch {1..20}.txt
at> <EOT>          #结束快捷键:ctrl+d
job 3 at Tue May 21 02:59:00 2024

#第二种方式写法
[root@localhost ~]# at 0  :00 2024-06-01
at> mkdir dakao
at> touch yuguofeng/a.txt
at> <EOT>
job 4 at Sat Jun  1 03:00:00 2024

[root@localhost ~]# at now +5min
at> mkdir cu
at> <EOT>
job 5 at Tue May 21 03:07:00 2024

[root@localhost ~]# at 17:00 tomorrow
at> touch yu
at> <EOT>
job 6 at Wed May 22 17:00:00 2024

[root@localhost ~]# at 07:00 pm +2 days
at> touch pl
at> <EOT>
job 7 at Thu May 23 19:00:00 2024

[root@localhost ~]# at 23:00 < 1.txt
job 8 at Tue May 21 23:00:00 2024
1.3查看计划任务
[root@localhost ~]# at -l
4	Sat Jun  1 03:00:00 2024 a root
6	Wed May 22 17:00:00 2024 a root
7	Thu May 23 19:00:00 2024 a root
8	Tue May 21 23:00:00 2024 a root

[root@localhost ~]# atq
4	Sat Jun  1 03:00:00 2024 a root
6	Wed May 22 17:00:00 2024 a root
7	Thu May 23 19:00:00 2024 a root
8	Tue May 21 23:00:00 2024 a root

root@localhost ~]# ls /var/spool/at/
a0000401b4b3b4  a0000701b484d4  spool
a0000601b47ebc  a0000801b47a84
1.4删除计划任务
[root@localhost ~]# at -l
4	Sat Jun  1 03:00:00 2024 a root
6	Wed May 22 17:00:00 2024 a root
7	Thu May 23 19:00:00 2024 a root
8	Tue May 21 23:00:00 2024 a root

[root@localhost ~]# atrm 8

[root@localhost ~]# atq
4	Sat Jun  1 03:00:00 2024 a root
6	Wed May 22 17:00:00 2024 a root
7	Thu May 23 19:00:00 2024 a root
2. crontab 命令
2.1 准备
#同样需要启动服务
[root@localhost ~]# systemctl start crond
[root@localhost ~]# systemctl status crond
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since 一 2024-05-20 18:35:18 CST; 8h ago
 Main PID: 7386 (crond)
    Tasks: 1
   CGroup: /system.slice/crond.service
           └─7386 /usr/sbin/crond -n

520 18:35:18 localhost.localdomain systemd[1]: Started Comma...
520 18:35:18 localhost.localdomain crond[7386]: (CRON) INFO ...
520 18:35:21 localhost.localdomain crond[7386]: (CRON) INFO ...
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost ~]# systemctl is-enabled crond
enabled
2.2 常见选项
-e:编辑cron定时计划任务
-l:查看当前用户定时计划任务
-u:设置crontab用户
-r:删除当前用户cron定时计划任务。      
-u user1 -l:列出指定用户user1下的cron服务的详细内容
2.3 特殊符号的含义
*代表取值范围内的数字(任意/每)
/指定时间的间隔频率*/10 0-23/2
-代表从某个数字到某个数字8-17
,分开几个离散的数字1,3,5,7

在这里插入图片描述

2.4 创建周期任务
#编辑脚本
[root@localhost spool]# crontab -e
*/1 * * * * echo "test" >> /root/1.txt

[root@localhost spool]# crontab -l
*/1 * * * * echo "test" >> /root/1.txt

[root@localhost ~]# crontab -u bin -e
*/1 * * * * echo "aaaaa" >> /root/2.txt
[root@localhost ~]# crontab -u bin -l
*/1 * * * * echo "aaaaa" >> /root/2.txt
2.5 查看周期任务
[root@localhost ~]# crontab -u bin -l

[root@localhost spool]# crontab -l
2.6 查看所有用户的计划任务
[root@localhost ~]# ll /var/spool/cron/
总用量 8
-rw-------. 1 root root 40 521 04:23 bin
-rw-------. 1 root root 88 521 04:21 root
2.7 系统任务调度的配置文件
#也可以在/etc/crontab 中添加计划任务
[root@localhost ~]# vim /etc/crontab 
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# 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
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
[root@localhost bin]# ls /etc/cron
cron.d/       cron.deny     cron.monthly/ cron.weekly/
cron.daily/   cron.hourly/  crontab  
#cron.d  系统自动定期需要做的任务
#cron.monthly/ 每月执行的脚本
#cron.weekly/  每周执行的脚本
#cron.daily/   每天执行的脚本
#cron.hourly/ 每小时执行的脚本
#crontab   #主配置文件也可添加任务

按小时、天、周、月执行的脚本需要保存到指定目录下并且拥有可执行权限脚本

四、at和cron黑白名单

at和cron黑名单默认允许所有,拒绝个别。

at和cron白名单默认拒绝所有,允许个别。

黑名单:默认存在、可直接使用
白名单:默认不存在,需手动创建后使用
黑名单中直接记录用户名即可
白名单优先级更高

日志管理

一、简介(起因)

在工作当中执行命令或者执行其他操作的时候,有时候避免不了报错,身为运维工程师我们可以通过日志查询报错的原因,或者找到攻击者当时留下的痕迹。

二、常见日志文件

系统日志文件概述/var/log目录报告由rsyslog维护的,存放特殊的系统和服务的日志文件

日志文件用途
/var/log/message大多数系统日志消息记录
/var/log/secure安全和身份验证相关的消息、登录失败的日志文件
/var/log/secure安全和身份验证相关的消息和错误的日志文件
/var/log/maillog与邮件服务器相关的消息日志文件
/var/log/cron定期执行任务相关的日志文件
/var/log/boot.log系统启动相关的消息记录
/var/log/dmesg硬件系统启动相关的消息记录

三、日志记录的方式

日志的记录:是在rsylog中由日志的类别级别组成

3.1 日志的类别
名称作用
daemon后台进程相关
kern内核产生的信息
lpr打印系统产生的
cron定时相关
mail邮件相关
syslog日志服务本身的
news新闻系统
authpriv安全验证
local10~7自定义的日志设备
local-local78个系统保留,程序使用或者是用户自定义
3.2 日志的级别
编码优先级严重性
7debug对开发人员调试应用程序有用
6info正常操作信息,可以收集报告,测试吞吐量
5notice注意,正常但重要的文件
4warning警告,如果不采取行动将会发生报错
!3err错误,某个模块或程序的功能不能正常使用
!2crit关键的错误,已经导致整个系统或软件不能使用
!1alert警报,需要立即修改的信息
!0emerg紧急,内核崩溃等严重消息

四、rsylog日志服务

4.1 查看日志配置文件信息
[root@localhost ~]# vim /etc/rsyslog.conf 
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
cron.*                                                  /var/log/cron
*.emerg                                                 :omusrmsg:*
uucp,news.crit                                          /var/log/spooler
local7.*                                                /var/log/boot.log
4.2 日志输入规则

. info 在大于等于info级别的信息全部记录到某个文件

. = 仅记录等于某个级别的日志文件

.=info  只记录info级别的日志

.! 除了某个级别以外,记录所有的级别信息
.!err除了err所有都记录

.none排除某个类别
mail.none 所有mail类别的日志都不记录

自定义日志

vim /etc/rsyslog.conf
#文件内容编辑
*.* /var/log/alert.log
systemctl restart rsyslog.service #重启rsyslog服务,使配置生效
4.2 防止日志文件删除
[root@localhost ~]# chattr +a /var/log/yum.log 
[root@localhost ~]# lsattr /var/log/yum.log 
-----a---------- /var/log/yum.log
[root@localhost ~]# systemctl restart rsyslog
[root@localhost ~]# 

五、日志切割轮替

5.1 起因

​ 如果某个服务器日志存储在一个文件上,当它的文件大小达到几个G以后,很难正常代开查看此文件里面的内容

5.2 解决办法

切割将大的日志文件按照固定大小分割成多个小的日志文件,一般会采取按日期分割,这样利于查看。

轮换将旧的日志删除,轮换新的日志内容

(超过保存时间或者一定文件大小的日志就会删除,然后将新的日志文件写入)。

5.3 日志文件命名规则

​ 如果日志没有命令规则,每天都是相同的文件名,那么今天所保存的日志文件就会覆盖前一天的日志文件。

5.4 logrotate配置文件
# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}
5.5 自定义日志切割轮替
vim /etc/logrotate.d/all

logroate -vf /etc/logroate.d/sshd#强制轮循
-v 显示指令执行过程
-f 强制执行

#大日志文件使用split命令进行切割
spilt:文件拆分
-d:指定输出文件名的后缀长度用数字代替
5.6 实验(搭建远程日志收集服务器)

​ 服务端配置

vim /etc/rsyslog.conf
	$ModLoad imtcp
	$InputTcpServiceRun 514
systemctl restart rsyslog
netstat -anlpt | grep 514

setenforce 0
systemctl stop firewalld
iptables -F

​ 客户端配置

​ 修改主机名

[root@localhost ~]# hostname  #查看主机名
localhost.localdomain
[root@localhost ~]# cat /etc/hostname #主机名保存文件
localhost.localdomain
[root@localhost ~]# hostnamectl set-hostname guofeng  #永久修改主机名
 #修改配置文件
[root@localhost ~]# vim /etc/rsylog.conf
*.*   @@192.168.161.131    #@@表示tcp协议  @表示udp协议
#重启服务 
[root@localhost ~]#systemctl restart rsylog

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java Swing + MySQL图书借阅管理系统

系列文章目录 Java Swing MySQL 图书管理系统 Java Swing MySQL 图书借阅管理系统 文章目录 系列文章目录前言一、项目展示二、部分代码1.Book2.BookDao3.DBUtil4.BookAddInternalFrame5.Login 三、配置 前言 项目是使用Java swing开发&#xff0c;界面设计比较简洁、适合作…

冯喜运:5.27黄金暴跌大阴后出现“暂定符”今日黄金原油操作策略

【黄金消息面分析】&#xff1a;金价虽然有大阴线暴跌&#xff0c;但依然属于超买后的调整而非熊市&#xff0c;对中长线投资者来说只是市场洗牌。因此&#xff0c;在出现企稳迹象之后&#xff0c;随时关注反弹时机的启动。未来几日&#xff0c;黄金空头可能在进一步发力之前需…

【机器学习结合AI绘画工具】——开启艺术创作的新纪元

目录 一、AI绘画工具的发展历程 二、AI绘画工具的技术原理 实例说明 三、AI绘画工具在艺术创作中的应用 实例网站 四、AI绘画工具的影响与未来展望 结论 机器学习和人工智能&#xff08;AI&#xff09;在过去的十年里取得了显著的进展。特别是在艺术创作领域&#xff0c…

Qt 对话框或者QMainWindow等类中调用自定义QWidget继承组件

简单的方法如下所示 1、创建一个ui文件&#xff0c;界面布局放入QVBoxLayout或者QHBoxLayout 使用他来放入自定义组件&#xff0c;类似如下 2、代码如下&#xff1a; ui.setupUi(this); { //自定义组价如下 KwTable *Table new KwTable(this); ui.vertical…

Java中的类加载器

类加载器 1.什么是类加载器&#xff1f; 启动类加载器&#xff08;Bootstrap ClassLoader&#xff09;&#xff1a;这是JVM自带的类加载器&#xff0c;负责加载Java的核心类库&#xff0c;如rt.jar等。由于安全原因&#xff0c;启动类加载器加载的类不能被其他类加载器加载的类…

python 两个表格字段列名称值,对比字段差异

支持xlsx,xls文件&#xff0c;相互对比字段列 输出两个表格文件相同字段&#xff0c;置底色为绿色 存在差异的不同字段&#xff0c;输出两个新的表格文件&#xff0c;差异字段&#xff0c;置底色为红色 import pandas as pd from openpyxl import load_workbook from openpy…

【云原生】Kubernetes-----POD资源限制与探针机制

目录 引言 一、资源限制 &#xff08;一&#xff09;基本定义 &#xff08;二&#xff09;资源单位 1.CPU资源 2.内存资源 &#xff08;三&#xff09;请求与限制 &#xff08;四&#xff09;定义方式 1.编写yaml文件 2.查看资源情况 &#xff08;五&#xff09;资源…

Gradient-checkpointing的原理

原文&#xff1a; 将更大的网络安装到内存中。|by 雅罗斯拉夫布拉托夫 |张量流 |中等 (medium.com) 前向传播时&#xff0c;隔几层就保留一层activation数据&#xff0c;其余层的activation都释放掉&#xff1b; 反向传播时&#xff0c;从最近的checkpoint去重新跑forward&…

Cohere继Command-R+之后发布大模型Aya-23,性能超越 Gemma、Mistral 等,支持中文

前言 近年来&#xff0c;多语言大模型&#xff08;MLLM&#xff09;发展迅速&#xff0c;但大多数模型的性能依然存在显著差距&#xff0c;尤其是在非英语语言方面表现不佳。为了推动多语言自然语言处理技术的发展&#xff0c;Cohere团队发布了新的多语言指令微调模型家族——…

cpolar内网穿透工具—无需部署,远程访问网址

文章目录 cpolar介绍安装教程隧道管理VIP客户cpolar介绍 cpolar是一种安全的内网穿透服务,它将局域网下面的本地服务器通过加密隧道暴露至公网,使得公网用户可以正常访问内网服务。 只需一行命令,就可以将内网站点发布至公网,方便给客户演示。高效调试微信公众号、小程序…

设计模式:适配器模式(Adapter)

设计模式&#xff1a;适配器模式&#xff08;Adapter&#xff09; 设计模式&#xff1a;适配器模式&#xff08;Adapter&#xff09;模式动机模式定义模式结构时序图模式实现在单线程环境下的测试在多线程环境下的测试模式分析优缺点适用场景应用场景应用实例适配器模式和代理模…

JAVA实现图书管理系统(初阶)

一.抽象出对象: 1.要有书架&#xff0c;图书&#xff0c;用户&#xff08;包括普通用户&#xff0c;管理员用户&#xff09;。根据这些我们可以建立几个包&#xff0c;来把繁杂的代码分开&#xff0c;再通过一个类来把这些&#xff0c;对象整合起来实现系统。说到整合&#xf…

Day04:CSS 进阶

目标&#xff1a;掌握复合选择器作用和写法&#xff1b;使用background属性添加背景效果 一、复合选择器 定义&#xff1a;由两个或多个基础选择器&#xff0c;通过不同的方式组合而成。 作用&#xff1a;更准确、更高效的选择目标元素&#xff08;标签&#xff09;。 1、后…

ros 学习记录(四)仿真环境中键盘控制turtlebot3运动

仿真环境中键盘控制turtlebot3运动 准备工作1. 监听键盘敲击&#xff1a;key_publisher.py2. 控制turtlebot3运动&#xff1a;keys_to_twist_using_rate.py3. 测试4. 数据监视 准备工作 名称版本ROSNoeticGazebo11.11.0python3.8.10 turtlebot3的安装与仿真环境搭建请看上一篇…

视频播放器-Kodi

一、前言 Kodi 是一款开源免费的多媒体播放软件。Kodi 是由非营利性技术联盟 Kodi 基金会开发的免费开源媒体播放器应用程序。 Kodi是一款免费和开源&#xff08;遵循GPL协议&#xff09;的多媒体播放器和娱乐中心软件&#xff0c;由XBMC基金会开发。Kodi的主要功能是管理和播…

three.js判断物体在人的前面,还是后面

three.js判断物体在人的前面&#xff0c;还是后面 const player new THREE.Vectors(10, 0, 5); const mesh new THREE.Vectors(15, 0, 6);上面&#xff0c;两个变量分别表示&#xff0c;玩家的位置&#xff0c;物体的位置。 从这发现&#xff0c;当玩家和物体的角度关系 小…

报错:c2665 ”loadimage“没有重载函数可以转换所有参数类型

解决方法: 右键项目选择属性-》高级-》字符集-》使用多字节字符集-》确定

SparkStreaming概述

Spark概述 SparkStreaming概述 Spark Streaming 是 Apache Spark 生态系统中的一个组件&#xff0c;用于实时流数据处理。它允许用户通过流式计算引擎处理实时数据流&#xff0c;并以低延迟的方式对数据进行分析、处理和存储。 背景 在大数据领域&#xff0c;传统的批处理系统…

什么是云渗透测试?

推荐阅读&#xff1a; 什么是安全态势&#xff1f; 什么是人肉搜索 什么是恶意软件&#xff1f; 什么是数字取证&#xff1f; 什么是语音网络钓鱼&#xff1f; 什么是网络安全中的社会工程&#xff1f; 什么是网络安全中的威胁情报&#xff1f; 什么是端点检测和响应 (…

Java进阶:详解与实战Java Stream API

Java进阶&#xff1a;详解与实战Java Stream API &#x1f31f; Java进阶&#xff1a;详解与实战Java Stream API &#x1f31f;摘要引言一、Java Stream API介绍&#x1f4da;1. 什么是Java Stream API&#xff1f;2. Java Stream API支持的功能3. 使用Java Stream API的优势…