今天開始學習新內容“服務集群與自動化”--crond服務、--syslog服務以及DHCP協議

一.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交互的對象就是網絡設備,核心的應用場景就是網絡通信。…