一.crond简介


1、基本介绍

        crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。Linux下的任务调度分为两类,系统任务调度和用户任务调度。

系统任务调度:

[root@localhost ~]# cat /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

注意:该文件下的“*”从左往右代表分、时、日、月、周。所以最小周期是分钟

示例:进入/etc/crontab  写入以最小周期删除/opt/下的所有内容,需等待一分钟。

[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 rm -rf /opt/*
[root@localhost ~]# mkdir /opt/dir1
[root@localhost ~]# systemctl restart crond.service 
[root@localhost opt]# ls
dir1
[root@localhost opt]# ls
[root@localhost opt]#

写入/etc/crontab文件的内容必须要systemctl restart crond.service重启一下才能生效。

用sed命令注释最后一行

[root@localhost ~]# sed -i 's/.*root rm -rf.*/#&/' /etc/crontab 
[root@localhost ~]# cat /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 rm -rf /opt/*

删除最后一行

[root@localhost ~]# sed -i '/.*root rm -rf.*/d' /etc/crontab 
[root@localhost ~]# !cat 
cat /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

用户任务调度:

用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。下面是几个特殊的文件介绍:

  • 文件:/etc/cron.deny                该文件中所列用户不允许使用crontab命令

  • 文件:/etc/cron.allow                该文件中所列用户允许使用crontab命令

  • 文件:/var/spool/cron/              所有用户crontab文件存放的目录,以用户名命名

[root@localhost ~]# crontab -e -u root
crontab: installing new crontab
[root@localhost ~]# crontab -l -u root
* * * * * rm -rf /opt/*

注意:crontab -l -u仅限于查看用crontab -e -u 写入的内容

二、crond服务


安装crontab

[root@localhost ~]# yum install crontabs

服务操作说明

systemctl start crond  #启动服务
systemctl stop crond   #关闭服务
systemctl restart crond #重启服务
systemctl reload crond #重新载入配置

查看crontab服务状态

[root@localhost ~]# systemctl status crond
○ crond.service - Command Scheduler

加入开机自启动

[root@localhost ~]# systemctl enable crond

三、crontab命令详解


命令参数

  • -u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般有root用户来运行。

  • file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。

  • -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。

  • -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。

  • -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。

  • -i:在删除用户的crontab文件时给确认提示。

四、使用注意事项


1.注意环境变量

2、注意清理系统用户的邮件日志

3、系统级任务调度与用户级任务调度

4、其他注意事项

  • 新创建的cron job,不会马上执行,至少要过2分钟才执行。

  • 如果重启cron则马上执行。当crontab突然失效时,可以尝试/etc/init.d/crond restart解决问题。或者查看日志看某个job有没有执行/报错tail -f /var/log/cron。

  • 千万别乱运行crontab -r。它从Crontab目录(/var/spool/cron)中删除用户的Crontab文件。删除了该用户的所有crontab都没了。

  • 在crontab中%是有特殊含义的,表示换行的意思。如果要用的话必须进行转义\%,如经常用的date ‘+%Y%m%d’在crontab里是不会执行的,应该换成date ‘+\%Y\%m\%d

Syslog日志服务(了解一下)


日志级别(英文)级别值含义描述典型应用场景示例信息
DEBUG(调试)7最详细的调试信息,用于开发和问题排查,记录程序内部运行细节应用程序开发调试、复杂问题诊断"用户登录函数被调用,参数:username=admin"
INFO(信息)6正常运行状态信息,确认系统按预期工作,无错误服务启动 / 停止、用户正常操作、定时任务执行成功"Nginx 服务已启动,监听端口 80"
NOTICE(注意)5需要注意的非严重异常,不影响系统正常运行用户密码错误次数较少、非预期但轻微的事件"用户 admin 输入密码错误 1 次"
WARNING(警告)4潜在问题或异常,不处理可能导致错误,但当前系统仍可运行磁盘空间不足(未达阈值)、网络连接波动、配置参数不优"根目录磁盘使用率达到 85%(阈值 90%)"
ERROR2(错误)3错误事件,导致部分功能失效,但不影响系统整体运行程序模块崩溃、文件读取失败、服务子进程异常退出"MySQL 备份失败:无法访问 /data/backup 目录"
CRITICAL(严重)2严重错误,可能导致系统核心功能失效,需立即关注数据库连接失败、关键服务崩溃、权限配置错误导致核心功能不可用"Nginx 服务崩溃,已自动重启(第 3 次)"
ALERT(警报)1紧急情况,必须立即手动干预,否则将产生严重后果磁盘空间耗尽、root 用户登录失败多次、关键配置文件被篡改"根目录磁盘使用率 100%,系统无法写入数据"
EMERGENCY(紧急)0最高级别,系统处于不可用状态(灾难级故障),需立即处理系统内核崩溃、文件系统损坏、服务器断电前的最后日志"系统内存耗尽,触发 OOM killer,终止了 10 个进程"

Linux Journalctl命令


Journalctl基础使用

查看所有日志(分页输出)

journalctl或者journalctl --no-pager

[root@localhost ~]# journalctl -xe
9月 13 06:40:43 localhost.localdomain sshd[232927]: Close session: user root from 192.168.60.1 p>

查看最新的n条日志

[root@localhost ~]# journalctl -n 6
9月 13 06:51:54 localhost.localdomain sshd[232927]: Starting sessi>
9月 13 06:51:55 localhost.localdomain sshd[232927]: Close session:>
9月 13 06:52:05 localhost.localdomain sshd[232927]: Starting sessi>
9月 13 06:52:05 localhost.localdomain sshd[232927]: Close session:>
9月 13 06:52:16 localhost.localdomain sshd[232927]: Starting sessi>
9月 13 06:52:16 localhost.localdomain sshd[232927]: Close session:

实时查看新添加的日志条目

[root@localhost ~]# journalctl -f
9月 13 06:42:41 localhost.localdomain sshd[232927]: Starting session: command for root from 192.168.60.1 port 65315 id 2

根据服务名称过滤

[root@localhost ~]# journalctl -u atd.service 
9月 12 14:08:15 localhost.localdomain systemd[1]: Started Deferred>
9月 12 14:08:15 localhost.localdomain (atd)[1096]: atd.service: Re>

DHCP协议(动态主机配置协议)


一、 概述


作用:动态的进行IP地址分配

服务端的监听端口 67/udp

客户端监听端口 68/udp

网络架构 C/S:client/server

DHCP的优势

  • 提高配置效率

  • 减少配置错误

DHCP的分配方式

  • 手动分配:固定不变,工程师进行地址绑定

  • 自动分配:但是不进行地址回收

  • 动态分配:进行地址回收

注意

​ 同一个网络环境下不允许存在多个DHCP服务器

课后实验

实验拓扑:

实验要求

1. DHCP服务器能够为两个网络分别分配IP地址。
2. 内部客户机设置为固定获得某一个IP地址。

(1)DHCP服务器的配置(单一网段)

安装:yum install -y dhcp

安装完了以后一定要把net模式换成vmnet1模式

进入目录:cd /etc/sysconfig/network-scripts

配置网关:修改BOOTPRTO=static

在最下方加入IPADDR=192.168.100.253

PREFIX=24

GATEWAY=192.168.100.254

重启网络:systemctl restart NetworkManager

查看一下IP是否配置成功:ip a

关闭防火墙且设置防火墙的工作模式为完全关闭状态

systemctl restart firewalld && systemctl disable firewalld

进入selinux安全上下文里修改其工作模式为disabled状态

vim /etc/selinux/config

将selinux=enforcing改为selinux=disabled

重启:reboot

查看selinux工作模式

getenforce ——>disabled

确定关闭防火墙后,进入/etc/dhcp

cd /etc/dhcp

复制该文件到./dhcpd.conf内

cp /usr/share/doc/dhcp-server/dhcpd.conf.example ./dhcpd.conf

询问是否覆盖

yes

编译DHCP配置文件dhcpd.conf

vim dhcpd.conf

先删除# A slightly different ......这一行上面三块部分的所有内容

然后进行编译此行下的内容

subnet 192.168.100.0 netmask 255.255.255.0 {

range 192.168.100.1 192.168.100.199;

option domain-name-servers 8.8.8.8;

option domain-name "jx.com";

option routers 192.168.100.254;

option broadcast-addrass 192.168.100.255;

default-lease-time 600;

max-lease-time 7200;

}

subnet 192.168.200.0 netmask 255.255.255.0 {

range 192.168.200.1 192.168.200.199;

option domain-name-servers 8.8.8.8;

option domain-name "jx.com";

option routers 192.168.200.254;

option broadcast-addrass 192.168.200.255;

default-lease-time 600;

max-lease-time 7200;

}

最后重启:

systemctl restart dhcpd

(2)配置路由器(配两块网卡)

先安装dhcpfuwu:

yum install -y dhcp

然后:

cd /etc/sysconfig/network-scripts/

查看网卡:

ls

ip a

nmcli c add type ethernet con-name ens224 ifname ens224

再查看网卡:

ls

开始配置ens160:

vim ifcfg-ens160

其中修改:BOOTPROTO=static

在最后添加:IPADDR=192.168.100.254

PREFIX=24

配置ens224:

vim ifcfg-ens224

其中修改:BOOTPROTO=static

在最后添加:IPADDR=192.168.200.254

PREFIX=24

重启网络:

systemctl restart NetworkManager

查看IP:ip a

nmcli c down ens160

nmcli c up ens160

ip a

再把路由功能打开

vim /etc/sysctl.conf

修改net.ipv4.ip_forward=1

查看是否打开:

sysctl -p

最后打开中继服务:

dhcrelay 192.168.100.253

(3)打开dhcp服务器和路由器进行抓包验证

dhcp:ping 192.168.200.1

路由器:tcpdump -i any (抓包)

看成果1.  2.

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

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

相关文章

从go语言出发,搭建多语言云原生场景下全链路观测体系

一、方案背景 在公司内部devops平台的微服务化改造过程中,我们遇到了典型的分布式系统观测难题:服务间调用链路复杂、性能瓶颈难以定位、故障排查效率低下。特别是在生产环境出现问题时,往往需要花费大量时间在各个服务的日志中寻找蛛丝马迹。…

Vue 进阶实战:从待办清单到完整应用(路由 / 状态管理 / 性能优化全攻略)

Vue 进阶实战:从待办清单到完整应用(路由 / 状态管理 / 性能优化全攻略) 在上一篇博客里,我们一起实现了能本地存储的待办清单,不少朋友留言说:“学会了基础,但遇到‘登录后才能访问页面’‘多…

uniApp开发XR-Frame微信小程序 | 动态加载与删除模型

在使用xr-frame开发3D小程序时,我们经常需要根据需求去动态加载模型或删除模型,在官方的说明中,提到了相关方法,但并不太明确,也没有确切的实例。 我们先来看一下官方给出的说明。 一. Shadow元素 我们需要用代码动…

把多个 PPT 合并在一起,三步告别复制粘贴

制作部门汇报分册、项目阶段文件等工作需要将多个零散的PPT合并为一份完整文档。手动复制粘贴不仅效率低下,还容易导致格式错乱、动画丢失。本文介绍一种高效方法,三步操作即可将多个PPT文件快速合并为单一文档。无论是整合汇报材料,还是准备…

安卓旋转屏幕后如何防止数据丢失-ViewModel入门

Android ViewModel 入门教程 在日常开发中,当 Activity 因为旋转屏幕或内存回收被销毁重建时,UI 中的数据也会丢失。 这时候,Android Jetpack 提供的 ViewModel 就能帮我们解决这个问题。 1. 什么是 ViewModel ViewModel 是一种架构组件。它专…

Linux 下的 Vim 使用与网络安全配置详解

目录 引言 一、Vim 编辑器的使用 1. Vim 的模式 2. 常用操作命令 3. 保存与退出 4. 多窗口与 Shell 切换 二、Linux 网络基础 1. 网络分类 2. IP 地址与分类 三、网络配置与工具 1. ifconfig 2. netstat 3. wget 4. 主机名与 IP 映射 四、Linux 防火墙与安全设置…

Docker 容器传输文件的常用方法

Docker 容器传输文件的常用方法 在 Docker 日常使用中,经常需要在主机与容器之间传输文件(如配置文件、代码包、日志等)。以下是四种最常用的实现方式,覆盖临时传输、持久共享、构建集成等不同场景。 1. 使用 docker cp 命令&…

视频转音频在线工具大比拼,哪家体验更胜一筹?

最近工作上遇到了个挺有意思的需求,需要从几个教学视频里提取出音频内容,方便做成播客形式,让学员能随时随地学习。一开始,我以为这活儿挺简单的,不就是把视频里的声音单独弄出来嘛,结果一上手才发现&#…

KafKa02:Kafka配置文件server.properties介绍

一、配置文件位置二、配置文件介绍默认下:9092 是处理消息队列核心业务(客户端与 broker 交互)的端口9093 是集群内部控制器通信的端口# 指定节点角色,这里同时作为 broker(消息代理)和 controller&#xf…

哈尔滨云前沿服务器租用托管

黑龙江前沿数据,始建于2005年,多年的历史,专业从事域名注册,虚拟主机,服务器租用,云主机,网站建设等互联网服务。电信/联通/双线/机房/众多机房供您选择,总有一个适合您的服务器&…

Qt开发经验 --- Qt 修改控件样式的方式(16)

文章目录[toc]1 概述2 Qt Style Sheets (QSS)3 使用 QStyle 和 QProxyStyle4 设置 Palette (调色板)5 使用预定义的 QStyle6 直接设置控件属性7 自定义控件绘制更多精彩内容👉内容导航 👈👉Qt开发经验 👈1 概述 Qt 提供了多种修改…

Vue3》》Svg图标 封装和使用

SVG 安装插件 npm i vite-plugin-svg-icons // vite.config.ts import { defineConfig } from vite import vue from vitejs/plugin-vue import { createSvgIconsPlugin } from vite-plugin-svg-icons import { resolve } from path export default defineConfig({//配置路径别…

【04】AI辅助编程完整的安卓二次商业实战-寻找修改替换新UI首页图标-菜单图标-消息列表图标-优雅草伊凡

【04】AI辅助编程完整的安卓二次商业实战-寻找修改替换新UI首页图标-菜单图标-消息列表图标-优雅草伊凡引言本次二开布局没有变,但是下一次整体布局会有变,不过本次开发发现朋友圈跳转功能的流程步骤也做了一定的变化。原生项目复杂就复杂于就算一个颜色…

龙蜥8.10中spark各种集群及单机模式的搭建spark3.5.6(基于hadoop3.3.6集群)

先说最终的访问端口,如我这里ip为172.20.94.37、172.20.94.38、172.20.94.39,主机名分别为:hadoop37、hadoop38、hadoop39. 最终访问(默认端口): hadoop webui 172.20.94.37:9870 hdfs 端口 8020 yarn 172.…

关于我重新学习 react 的第一遍

今天是25年9月11号,很久很久没有学习前端知识了,坦诚来说还清楚记得在大学里因为前端技术第一次获奖的心情,也清晰记得写完第一篇博客后的心情,工作和运动给我最大程度的成就感。 打破自己 重新开始 完全地 版本一 25.9.11 文章目…

第2课:Agent系统架构与设计模式

第2课:Agent系统架构与设计模式 课程目标 理解Agent的基本概念和特性掌握多Agent系统的设计模式学习Agent通信协议和消息传递实践创建简单的Agent框架 课程内容 2.1 Agent基础概念 什么是Agent? Agent是一个具有自主性、反应性、社会性和主动性的计…

Day42 51单片机中断系统与8×8 LED点阵扫描显示

day42 51单片机中断系统与88 LED点阵扫描显示一、51单片机引脚位操作 —— sbit 关键字 作用 sbit 是专用于 51 单片机架构的 C 语言扩展关键字,用于定义特殊功能寄存器(SFR)中的某一位,从而实现对单个 I/O 引脚的直接位操作。 示…

差分: 模板+题目

题目:【模板】差分 应用场景:快速解决将某一个区间所有元素加上 “一个数” 的操作。 第一步,预处理差分数组。 f[i] 表示:当前元素与前一个元素的差值 a[i] - a[i-1]; 但在题目中,我们其实可以不用到a[]这个数组…

GD32 Timer+ADC多通道+DMA+PWM调试记录

本例记录使用GD32307C开发板,实现以内部Timer1 CH1为触发源,触发ADC0的两个通道,进行并行非连续采样,病通过DMA传输采样结果。同时输出PWM,用来检测Timer1 CH1的触发周期。下面介绍具体实现过程:1. gpio初始…

阻塞 IO为什么叫BIO,非阻塞IO为什么叫NIO,异步IO为什么叫AIO

IOIO的核心就是数据传输,也就是程序与外部设备之间进行传输,通过IO的核心可以分为,文件IO和网络IO文件IO交互的对象就是本地存储设备,比方说读写本地文件。网络IO交互的对象就是网络设备,核心的应用场景就是网络通信。…