Linux定时计划

news2024/7/4 5:19:34

定时计划

一、计划任务种类

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

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

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

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

相关文章

AI办公自动化:用kimi批量将word文档部分文件名保存到Excel中

文件夹中有很多个word文档&#xff0c;现在只要英文部分的文件名&#xff0c;保存到一个Excel文件中。 可以在kimi中输入提示词&#xff1a; 你是一个Python编程专家&#xff0c;要完成一个编写Python脚本的任务&#xff0c;具体步骤如下&#xff1a; 打开文件夹&#xff1a;…

51单片机-实机演示(LED,呼吸,蜂鸣器)

一&#xff0c;LED点灯 #include "REG52.H"sbit LED P0^0;void main() {LED 1;while (1){} }控制P00输出。 烧录 重启 再换个引脚插入的位置。 二&#xff0c;蜂鸣器 代码&#xff0c;和烧录步骤同上。 只需要换一下&#xff0c;引脚位置即可 三&#xff0c;呼…

jmeter之MD5加密接口请求教程

前言&#xff1a; 有时候在项目中&#xff0c;需要使用MD5加密的方法才可以登录&#xff0c;或者在某一个接口中遇到 登录获取token后才可以进行关联&#xff0c;下面介绍下遇到的常见使用 一、第一种方法&#xff1a;使用jmeter自带的函数助手digest 选择工具&#xff0c;选择…

ssm整合教程

目录 写在前面 目录结构 添加依赖 web.xml jdbc.properties spring.xml mybatis.xml springmvc.xml pom.xml额外配置 last&#xff1a;写个测试样例看看整合成功没。 User.java UserDao.java(接口) UserController.java UserService.java UserServiceImpl.java …

人工智能在鼻咽癌领域的最新应用|【医学AI·论文速递·05-27】

小罗碎碎念 2024-05-27&#xff5c;文献速递 接下来打算把人工智能在主流癌种治疗中的应用&#xff0c;每天和大家做一期推送&#xff0c;方便大家了解各自领域最新的一个进展。 因为小罗的课题是鼻咽癌相关的&#xff0c;所以这一期推文就先从人工智能在鼻咽癌中最新的应用开…

MyBatis框架的使用:mybatis介绍+环境搭建+基础sql的使用+如何使用Map传入多个参数+返回多个实体用List或者Map接收+特殊sql的使用

MyBatis框架的使用&#xff1a;mybatis介绍环境搭建基础sql的使用如何使用Map传入多个参数返回多个实体用List或者Map接收特殊sql的使用 一、MyBatis介绍1.1 特性1.2 下载地址1.3 和其它持久层技术对比 二、搭建环境2.1配置maven2.2 创建mybatis配置文件2.3 搭建测试环境 三、基…

【CTF Web】CTFShow web7 Writeup(SQL注入+PHP+进制转换)

web7 1 阿呆得到最高指示&#xff0c;如果还出问题&#xff0c;就卷铺盖滚蛋&#xff0c;阿呆心在流血。 解法 注意到&#xff1a; <!-- flag in id 1000 -->拦截很多种字符&#xff0c;连 select 也不给用了。 if(preg_match("/\|\"|or|\||\-|\\\|\/|\\*|\…

宿舍管理系统代码详解(操作界面)

目录 一、前端代码 1.样式展示 2.代码详解 <1>主页面列表部分 &#xff08;1&#xff09;template部分 &#xff08;2&#xff09;script部分 <2>新增页面 &#xff08;1&#xff09;template部分 &#xff08;2&#xff09;script部分 <3>修改页面…

C++初阶学习第九弹——探索STL奥秘(四)——vector的深层挖掘和模拟实现

string&#xff08;上&#xff09;&#xff1a;C初阶学习第六弹——探索STL奥秘&#xff08;一&#xff09;——标准库中的string类-CSDN博客 string&#xff08;下&#xff09;&#xff1a;C初阶学习第七弹——探索STL奥秘&#xff08;二&#xff09;——string的模拟实现-CS…

访问tomcat的webapps下war包,页面空白

SpringBootvue前后端分离项目&#xff0c;Vue打包到SpringBoot中 常见问题 错误一&#xff1a;war包访问页面空白 前提&#xff1a;项目在IDEA里配置tomcat可以启动访问项目 但是&#xff0c;打成war包拷贝到tomcat webapps下能启动却访问不了&#xff0c;页面显示空白 原…

孜然多程序授权系统V2.0开源

源码介绍 孜然一款多程序授权系统&#xff0c;支持自定义权限价格/新增程序配置等支持自动生成授权代码在线签到在线充值多支付接口IP/域名云黑文章系统&#xff08;富文本编辑器&#xff09;卡密功能一键云黑&#xff08;挂个大马/一键黑页/一键删库/一键删源码&#xff09; …

linux 阿里云服务器安装ImageMagick和php扩展imagick

操作系统版本 Alibaba Cloud Linux 3.2104 LTS 64位 # 1.安装ImageMagick yum install -y ImageMagick ImageMagick-devel # 没有pecl要先安装pecl 和头文件 sudo yum install php-devel # 2.pecl 安装扩展 pecl install imagick #寻找所有php.ini文件 find / -name php.…

基于EV54Y39A PIC-IOT WA的手指数量检测功能开发(MPLAB+ADC)

目录 项目介绍硬件介绍项目设计开发环境及工程参考总体流程图硬件基本配置光照传感器读取定时器检测逻辑 功能展示项目总结 &#x1f449; 【Funpack3-2】基于EV54Y39A PIC-IOT WA的手指数量检测功能开发 &#x1f449; Github: EmbeddedCamerata/PIC-IOT_finger_recognition 项…

42-5 应急响应之日志分析

一、Windows 系统日志排查 1)日志概述 在 Windows 2000 专业版、Windows XP 和 Windows Server 2003 中: 系统日志的位置为 C:\WINDOWS\System32\config\SysEvent.evt安全性日志的位置为 C:\WINDOWS\System32\config\SecEvent.evt应用程序日志的位置为 C:\WINNT\System32\c…

在Windows中安装Redis

一、下载Redis github链接&#xff1a;https://github.com/redis-windows/redis-windows/releases 二、安装 解压后点击start.bat文件即可启动服务 新开一个cmd窗口进入安装了Redis的文件夹输入redis-cli.exe -h 127.0.0.1 -p 6379连接Redis&#xff0c;见如下结果便是成功&…

第六节:带你全面理解vue3 浅层响应式API: shallowRef, shallowReactive, shallowReadonly

前言 前面两章,给大家讲解了vue3中ref, reactive,readonly创建响应式数据的API, 以及常用的计算属性computed, 侦听器watch,watchEffect的使用 其中reactive, ref, readonly创建的响应式数据都是深层响应. 而本章主要给大家讲解以上三个API 对应的创建浅层响应式数据的 API,…

VUE3 学习笔记(3):VUE模板理念、属性绑定、条件渲染、列表渲染

准备 1.清空不必要的项目文件 项目/src/assets/ 目录文件清空 项目/src/components/ 目录文件清空 删除main.js 的css引用 App.vue 代码如下 <template> </template> <script>//注意这里默认有一个setup 去掉 </script> 运行一下无错误提示就可以了…

【教学类-58-05】黑白三角拼图05(2-10宫格,每个宫格随机1张-6张,带空格纸,1页3张黑白3张白卡)

背景需求&#xff1a; 【教学类-58-04】黑白三角拼图04&#xff08;2-10宫格&#xff0c;每个宫格随机1张-6张&#xff0c;带空格纸&#xff0c;1页6张黑白&#xff0c;1张6张白卡&#xff09;-CSDN博客文章浏览阅读582次&#xff0c;点赞16次&#xff0c;收藏3次。【教学类-58…

无人机的相关基础知识(看不懂了 待定以后继续补充)

视频&#xff1a; 【浙江大学】浙大博导带你从0制作无人机_哔哩哔哩_bilibili 什么是无人飞行器 无人机自主导航构架 IMU&#xff08;加速度计和陀螺仪&#xff09;&#xff0c;可以测出当前的 加速度和角速度 这俩信息再去融合外部传感器 &#xff08;例如视觉传感器或者雷…