Linux備份服務及rsync企業備份架構(應用場景)

備份服務概述

備份服務:需要使用到腳本,打包備份,定時任務.

備份服務:rsyncd服務,不同主機之間數據傳輸.

  • 特點:
  1. rsync是個服務也是命令
  2. 使用方便,具有多種模式
  3. 傳輸數據的時候是增量傳輸

增量與全量:
全量 :無論多少數據全部推送走(scp)
增量:只會把修改新建了的文件傳輸走(rsync)

把/etc/目錄傳輸到另外一臺機器的/tmp/下面
scp -r /etc/sysconfig/ root@192。168.28.131:/tmp/
rsync -avz /etc/sysconfig/ root@192.168.28.131:/mnt/

rsync企業應用場景:
應用場景(業務場景) 應用建議

rsync作為命令使用 臨時拉取,推送數據.未來這個需求可以通過scp命令實現.

定時備份:rsync服務+定時任務 定時備份,定期備份案例.(定時任務進行備份+通過rsync傳輸備份)

實時同步:rsync服務+sersync/lsyncd實現實時同步 解決存儲服務單點問題

rsync服務與異地容災找一個異地的服務器存放備份

注意:單點問題:同一個功能/同一個服務,只有1臺節點.

rsync不同的模式

1.1rsync本地模式

rsync -a /etc/ /tmp/
rsync -a /etc /opt/

在rsync對于目錄 /etc/ /etc是有區別的
/etc /etc目錄+目錄的內容
/etc/ /etc/目錄下面的內容

1.2遠程模式

格式

rsync -a 源文件 目標

推送:rsync /etc/hostname root@192.168.28.131:/tmp

拉取:rsync root@192.168.28.131:/etc/hosts /opt/

#推送/etc/hostname到192.168.28.131的/tmp/目錄
rsync -a /etc/hostname root@192.168.28.131:/tmp

#推送/etc目錄及目錄內容到131的/tmp下面
##推送第1次 全量
rsync -av /etc root@192.168.28.131:/tmp
##推送第2次 發現沒有推送
rsync -av /etc root@192.168.28.131:/tmp
##創建文件再次推送
touch /etc/wulin.txt
rsync -av /etc root@192.168.28.131:/tmp
#通過scp推送 /etc目錄及目錄內容到131的 /opt下面
scp -r /etc/ root@192.168.28.131:/opt/
-r遞歸傳輸

1.3守護進程模式

服務使用流程

部署

配置

啟動,使用

優化

故障

自動化

(監控,日志,安全,自動部署,容器)

1.3.1檢查是否安裝

檢查安裝 更新
yum install -y rsync
檢查軟件包內容
/etc/rsyncd.conf #配置文件
/usr/bin/rsync #命令
/usr/lib/systemd/system/rsyncd.service #systemctl對應的配置文件

1.3.2進行配置

[root@backup /wulin]# cat/etc/rsyncd.conf
#created by wulin 2024-5-12
##rsyncd.conf start##
fake super =yes
uid = rsync
gid = rsync
use chroot = no
max connections = 2000
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors

read only = false
list = false
#hosts allow = 10.0.0.0/24
#hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
#####################################
[data]
comment = www by wulin 2024-5-12
path = data

#啟動服務
systemctl enable rsyncd
systemctl start rsyncd

#檢查進程
ps -ef |grep rsync

#檢查端口
ss -lntup |grep rsync

1.3.2后續配置

 #1.添加虛擬用戶
useradd  -s /sbin/nologin -M   rsync#2.創建密碼文件
密碼文件格式:用戶名:密碼
echo 'rsync_backup:123 ' >/etc/rsync.password
chmod 600 /etc/rsync.password#3.共享目錄與權限
mkdir /data/#啟動服務
systemctl start rsyncd
systemctl enable rsyncd

#訪問測試:

rsync -avz /etc/hosts rsync_backup@192.168.28.41::data

rsync_backup是服務端配置文件中的認證用戶

data表示模塊名字

本地測試:
[root@backup ~]# rsync -av /etc/hostname  
rsync_backup@192.168.28.41::data
Password:
sending incremental file list
hostname
sent 102 bytes
received 43 bytes  41.43 bytes/sec
total size is 7
speedup is 0.05[root@backup ~]# ll /data/
total 4
-rw-r--r-- 1 rsync rsync  17:02 hostname

#客戶端測試:
##基本測試
[root@nfs01 ~]# rsync -avz /etc/hosts
rsync_backup@172.16.1.41::data
Password:
sending incremental file list
hosts

sent 214 bytes
received 43 bytes 73.43 bytes/sec
total size is 329 speedup is 1.28

##免密碼傳輸數據到服務器
[root@nfs01 ~]#echo ‘123’ >/etc/rsync.passwords
[root@nfs01 ~]#chmod 600 /etc/rsync.passwords
[root@nfs01 ~]#
[root@nfs01 ~]#rsync -avz /etc/hosts rsync_backup@172.16.1.41::data --password-file=/etc/rsync.passwords
sending incremental file list

sent 47 bytes received 20 bytes 134.00 bytes/sec
total size is 333 speedup is 4.97

傳到客戶端
[root@nfs01 ~]#rsync -avz /tmp/etc.tar.gz rsync_backup@172.16.1.41::data --password-file=/etc/rsync.passwords
sending incremental file list
etc.tar.gz在這里插入圖片描述

1.4守護進程補充

uid,gid與auth user

1.用戶執行命令:rsync -avz /tmp/etc.tar.gz rsync_backup@backup::data --passwordfile=/etc/rsync.password

2.服務端收到數據:判斷rsync_backup用戶,然后等待輸入密碼

3.把用戶名和密碼與配置文件里面對比auth user和secretsfile

4.通過后,傳輸數據

5.數據到達服務器所有者被修改為uid和gid指定的(rsync)

6.數據寫入data模塊(/data/)目錄下面.

免密的方式連接服務端(命令行指定客戶端密碼文件)

客戶端密碼文件只存儲密碼即可
echo 123 >/etc/client.rsync
chmod 600 /etc/client.rsync
rsync -avz /etc/hosts
rsync_backup@172.16.1.41::data --password-
file=/etc/client.rsync

訪問控制-安全措施

hosts allow只準許指定的ip或網段訪問

hosts deny拒絕.
配置只準許172.16.1.0/24網段訪問

2.1rsync選項

-a

  1. -rlptgoD
  2. -r遞歸復制
  3. -l復制軟連接
  4. -p保持權限不變
  5. -m保持修改時間不變
  6. -o所有者不變
  7. -g用戶組不變
  8. -D --devices --specials設備與特殊文件

-v 顯示過程

-z 傳輸數據時候進行壓縮(公網)

-p 顯示每rsync -av . root@192.168.28.131:/tmp/ --exclude=04rsync -av . root@192.168.28.131:/mnt --exclude={04,05}個文件傳輸過程(進度條)斷點續傳–partial --progress

–bwlimit 限速注意不要與-z一起使用

–exclude、–exclude-from排除

–delete目標目錄與源目錄保持一致的傳輸

限速并傳輸
rsync  -aP --bwlimit=500kb   /tmp/1g  
192.168.28.131:/mnt/傳輸并排除
rsync -av .  root@1192.168.28.1311:/tmp/   --exclude=04
rsync -av .  
root@192.168.28.131:/mnt   --exclude=
{04,05}通過文件內容進行排除
[root@backup /wulin]# cat /tmp/paichu.txt
03
05
10[root@backup /wulin]# rsync -av .  
root@192.168.28.131:~   --exclude-from=/tmp/paichu.txt保持源與目標數據一致
rsync  -avP --delete   .  root@192.168.28.131:/tmp/

故障總結

password mismatch

backup rsyncd[3177]: authfailed on module data from UNKNOWN(10.0.0.41) for rsync_backup: no secretsfile

no secrets file

selinux和防火墻
在這里插入圖片描述

項目案例

可能來自于老大的一句話:網站數據需要備份,你操作一下

接下來的內容需要你自己規劃,備份什么內容?如何備份?如何收集備份(統一存放備份)?保留時間?都是什么系統?什么系統的版本?

  • 備份什么?

    1. 數據(用戶數據庫)數據庫 存儲

    2. 配置文件

    3. 腳本和代碼

    4. 網站代碼

日志收集

  • 如何備份?

  • 如何收集?

    rsync服務收集備份(rsync客戶端推送備份到rsync服務器)

在這里插入圖片描述

2.2項目流程:

1)環境準備

1)環境準備
角色 主機 運行服務
存放備份 backuprsync服務端
生成備份 nfs01rsync客戶端,其他服務
生產備份 web01rsync客戶端,其他服務
  1. 項目步驟
    這里為操作步驟,未來的工作還會有溝通(與其他部門進行商討)定期匯報
    | 步驟說明 詳細內容 | |
    | ------------------------------------------------------------ | ---- |
    | rsync服務端并調試 服務端配置 、back目錄 | |
    | rsync客戶端節點配置腳本(備份) 備份 推送 清理 | |
    | 其他節點匹配定時任務 定時運行腳本 | |
    | 在備份服務器上檢查并發送郵件 在rsync服務端檢查備份并發送郵件 | |

  2. 配置與檢查rsync服務端與客戶端
    vim/etc/rsyncd.conf
    在這里插入圖片描述

[root@backup ~]#mkdir -p /backup/ #創鍵目錄chown -R rsync.rsync /backup/ll -d /backup/檢查

在這里插入圖片描述
改完了配置文件進行重啟

systemctl restart rsyncd(端口號為873)

ch在客戶端測試

rsync -av /etc/hostname rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.passwords
sending incremental file list
hostname

在備份服務器看是否傳輸過來

ll /backup/

cat /backup/hostname

4)書寫備份腳本
書寫腳根據企業,任務需求合理高效進行書寫腳本,寫腳本在多窗口化進行編寫邊測試(整理這個的需要命令,寫成腳本(引用變量名實現腳本萬能功能–在相同類型機器上省時間省力氣–當然注意整體磁盤空間內存信息,在架構搭建初期各部門進行會議交流))

在nf01這個客戶端上vim /server/scripts/bak_conf.sh(寫腳本編寫腳本邊進行測試)[root@nfs01 ~]#hostname -I[root@nfs01 ~]#hostname -I |awk '{print $2}'

在這里插入圖片描述
在存儲服務器上對推送腳本進行測試

mkdir -p /backup/172.16.1.131

tar zcf /backup/172.16.1.131/etc.tar.gz /etc /var/spool/cron/

ll /backup/172.16.1.131/

tree /backup/(企業數量文件內容特別多的時候,可以采用樹狀結構)

rsync -a /backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.passwords

檢查服務端是否推送過來

tree /backup/
在這里插入圖片描述
測試成功,將腳本寫入腳本

繼續在客戶端測試刪除舊的客戶端備份命令
在這里插入圖片描述
[root@nfs01 ~]#find /backup/ -type f -name “*.tar.gz”

[root@nfs01 ~]#find /backup/ -type f -name “*.tar.gz” -mtime +7 |xargs rm -f

(這里xargs后不支持別名 ,rm刪文件會接提示)
在這里插入圖片描述
測試成功寫入腳本!

整個備份服務器腳本配置文件:
在這里插入圖片描述
腳本運行完進行測試

rm -fr /backup/

把服務端的ip可以進行刪掉,這里如果刪除了backup目錄,備份服務器會報錯
在這里插入圖片描述
刪掉客戶端目錄并tree
在這里插入圖片描述
運行腳本并檢查服務端是存在backup
在這里插入圖片描述
在這里插入圖片描述
未來我們只需要調整腳本備份內容(目錄)ip即可

寫定時任務:
在這里插入圖片描述
在這里插入圖片描述
crontab -e

在這里插入圖片描述
在這里插入圖片描述
查看日志tail -f /var/log/cron

date

查看結果(每2秒進行執行)

在這里插入圖片描述
查看服務端:
在這里插入圖片描述
(說明測試沒有問題,可以在定時任務按照企業時間需求及追加目錄進行配置

5)服務端備份腳本調試
檢查備份并清除舊的備份腳本

vim /server/scripts/check.sh

find /backup/ -type f -name "*.tar.gz" |xargs ls -lhd
find /backup/ -type f -name "*.tar.gz" |awk '{print $NF,$5}'
find /backup/ -type f -name "*.tar.gz" |awk 
-F  '[ /]+' '{print $(NF-1),NF,$5}'

在這里插入圖片描述
讓內容多一點將nfs01客戶端腳本文件傳入到web01服務器上

[root@nfs01~]#scp/server/scripts/bak_conf.sh 192.168.28.7:/server/scripts/
在這里插入圖片描述
[root@nfs01 ~]#scp /etc/rsync.password 192.168.28.7:/etc

[root@nfs01 ~]#scp /var/spool/cron/root 192.168.28.7:/var/spoo
l/cron/

檢查傳輸到web01服務器內容

[root@web01 ~]#ll /etc/rsync.password

[root@web01~]#ll/etc/rsync.password /server/scripts/bak_conf.sh

[root@web01 ~]#ll /etc/rsync.password /var/spool/cron/root

[root@web01~]#head-30/etc/rsync.password /server/scripts/bak_conf.sh /var/spool/cron/root
在這里插入圖片描述
在這里插入圖片描述
在web01服務器運行bak_conf.sh腳本
在這里插入圖片描述
在備份服務器進行檢查如果成功會有172.16.1.7這一行

[root@backup ~]#find /backup/ -type f -name “*.tar.gz” |awk -F ‘[ /]+’ ‘{print $(NF-1),NF,$5}’

在這里插入圖片描述
在這里插入圖片描述
測試統計結果命令并寫入腳本:

[root@backup ~]#awk -F: ‘BEGIN{print “用戶名”,“UID”}{print 1 , 1, 1,?3}’ /etc/passwd

在這里插入圖片描述
完成腳本(清除舊的腳本統計結果并將結果發送到郵件)
在這里插入圖片描述
[root@backup /backup]#sh /server/scripts/check.sh

如果在郵箱中沒有見到信息,在垃圾郵箱查找(被郵箱系統屏蔽掉了)
在這里插入圖片描述
在這里插入圖片描述
配置定時任務:

crontab -e
在這里插入圖片描述
然后觀察日志文件及郵箱信息

[root@backup /backup]#tail -f /var/log/cron

最后將結果追加到result.txt
在這里插入圖片描述

6)增加校驗功能

簡單理解校驗測試(知識理解):

  • 檢查傳輸中是否有變化及檢查的那個文件md5:
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    檢查多個檢驗文件(find+md5)
#給/etc/下面所有的文件創建MD5保存到指定文件中
find /etc/ -type f | md5sum   >etc-all.md5
#進行校驗
md5sum -c etc-all.md5
#修改/etc/下某個文件比如增加個"#"
vim /etc/rsyncd.conf
#進行校驗
md5sum -c etc-all.md5
#只顯示md5
異常的文件
md5sum --quiet  -c etc-all.md5

在這里插入圖片描述
具體應用:

  • 客戶端備份的時候生成備份,創建指紋信息

安全防護措施:

給命令和較為固定的配置設置md5,定期校驗

作圖為清理舊的備份服務端腳本

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

rsync2022年漏洞

影響的版本:3.2.5版本驗證不足情況

檢查rsync版本:
在這里插入圖片描述
檢查yum源是否有新的rsync版本,在裝yum最新版本之前,我們自己的rsync比它最新的版本很低:
在這里插入圖片描述
去官網找rsync包:下載 Samba

下載 Sambarsync (samba.org)

https://rsync.samba.org/

在這里插入圖片描述
二進制別人已經弄好了,我們只需要進行解壓使用,但是不一定能打開
添加鏈接描述
https://download.samba.org/pub/rsync/binaries/
在這里插入圖片描述
這里的版本還不能進行滿足,下載這里最
新的rsync包,看是否還能進行滿足:
##下載最新的rsync包
wget https://download.samba.org/pub/rsync/binaries/centos-7.9-x86_64/latest.tar.gz
[root@backup ~]#tar tf latest.tar.gz

[root@backup ~]#tree -F usr/
usr/
└── local/
├── bin/
│ ├── rsync*
│ └── rsync-ssl*
└── share/
├── doc/
│ ├── COPYING
│ ├── NEWS.md
│ └── README.md
└── man/
├── man1/
│ ├── rsync.1
│ ├── rsyncd.conf.5
│ └── rsync-ssl.1
└── man5/

在這里插入圖片描述
會發現還是滿足不了

  • yum源不行
  • 軟件包不行
  • 官網二進制也不行
  • 我們使用最本制的方式:編譯安裝(這里有3.2.7的版本)

通過yum update rsync升級,查到的版本還是低,但是升級說不定修復了補丁(說不來)廠商已經發布升級補丁修復漏洞方式(不方便升級版本的時候使用補丁)

還是要進行改源代碼–》回到本質還是編譯

還可以通過漏洞掃描工具,針對具體漏洞具體處理

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/14330.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14330.shtml
英文地址,請注明出處:http://en.pswp.cn/web/14330.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

貪心算法:合并區間

參考資料:代碼隨想錄 題目鏈接:. - 力扣(LeetCode) 做過用最少數量的箭引爆氣球和無重疊區間這兩道題目后,題意和題解都不難理解。唯一的一點兒難點是對于api的運用。 class Solution {public int[][] merge(int[][…

設備管理全解析:從選購到報廢的全方位指南

在現代企業快速發展、智能化運營過程中,企業設備管理是保障生產連續性和效率的核心環節,其重要性不言而喻。然而,許多企業在設備管理內容流程方面仍然使用傳統管理辦法,這不僅影響了生產效率,也增加了不必要的成本。那…

vuejs路由和組件系統

前端路由原理 createRouter * hash* window.addEventListener(hashChange)* 兩種實現路由切換的模式:UI組件(router-link,router-view),Api(push()方法) * history * HTML5新增的API &#xff0…

每日一題(1)

在看一本08年出版的書的時候,看到了這樣一個問題,感覺答案很奇怪: public class demo_p22 {public static void main(String args[]){int sCook1,sFish2;//各技能標記character ch1new character();if(ch1.haveSkill(sCook))System.out.print…

仙樂健康科技股份有限公司「E立方仿生增效技術平臺」推出新品啦

在這個看臉的顏值經濟時代,很多女性將肌膚保養作為人生的“必修課”,從各種網上攻略到高端護膚品,再到美容院的專業護理,可以說是應有盡有。最近,仙樂健康科技股份有限公司「E立方仿生增效技術平臺」推出的新品——PQQ鹽膠原小分子肽樺樹汁飲品,就受到了頗多追求健康美人士的關…

svg中漸變色的應用

設置漸變色背景 在 SVG 中可以使用<linearGradient>或<radialGradient>元素來設置漸變背景色。以下是一個簡單的示例&#xff1a; <svg width"400" height"400"><defs><linearGradient id"myGradient"><stop…

Discord運營攻略 | 從0-1教你搭建用戶社區!

Discord&#xff0c;這個最初為游戲愛好者設計的通訊平臺&#xff0c;現在已經發展成為了一個多元化的社區聚集地&#xff0c;涵蓋了各種興趣和行業。如果你是一名社媒運營人員&#xff0c;正在考慮如何從零開始構建一個充滿活力的Discord用戶社區&#xff0c;那么你來對地方了…

【CSP CCF記錄】202012-2 期末預測之最佳閾值

題目 過程 思路 第一次沒用前綴和&#xff0c;暴力求解得50分。 采用前綴和方法。 1. 對原數組stu[i]進行排序。 2. 計算前綴和數組s[]&#xff0c;s[i]表示安全指數的y_i的前綴和&#xff0c;即安全指數小于等于y_i時的實際掛科情況&#xff0c;y_i之前有多少個未掛科&am…

無線領夾麥克風哪個品牌好?無線麥克風品牌排行榜前十名推薦

?在當今的數字化浪潮中&#xff0c;個人聲音的傳播和記錄變得尤為重要。無論是會議中心、教室講臺還是戶外探險&#xff0c;無線領夾麥克風以其卓越的便攜性和連接穩定性&#xff0c;成為了人們溝通和表達的首選工具。面對市場上琳瑯滿目的無線麥克風選擇&#xff0c;為了幫助…

Python筑基之旅-MySQL數據庫(三)

目錄 一、數據庫操作 1、創建 1-1、用mysql-connector-python庫 1-2、用PyMySQL庫 1-3、用PeeWee庫 1-4、用SQLAlchemy庫 2、刪除 2-1、用mysql-connector-python庫 2-2、用PyMySQL庫 2-3、用PeeWee庫 2-4、用SQLAlchemy庫 二、數據表操作 1、創建 1-1、用mysql-…

38. 外觀數列 - 力扣(LeetCode)

基礎知識要求&#xff1a; Java&#xff1a;方法、for循環、if eles語句、StringBuilder類 Python&#xff1a; 方法、for循環、if else語句、字符串拼接 題目&#xff1a; 「外觀數列」是一個數位字符串序列&#xff0c;由遞歸公式定義&#xff1a; countAndSay(1) "…

記錄Python低代碼開發框架zdppy_amcrud的開發過程

實現新增接口 基礎代碼 import env import mcrud import api import snowflakeenv.load(".env") db mcrud.new_env()table "user" columns ["name", "age"]async def add_user(req):data await api.req.get_json(req)values [d…

SkyEye對接CANoe:助力汽車軟件功能驗證

01.簡介 CANoe&#xff08;CAN open environment&#xff09;是德國Vector公司專為汽車總線設計而開發的一款通用開發環境&#xff0c;作為車載網絡和ECU開發、測試和分析的專業工具&#xff0c;支持從需求分析到系統實現的整個系統的開發過程。CANoe豐富的功能和配置選項被OE…

虛擬ECU:徹底改變汽車軟件開發與測試

汽車開發領域有著垂直性較強的一系列需求&#xff0c;其中最為矚目的需求之一就是對安全高效的軟件測試方法的需求。傳統的汽車開發偏向使用硬件原型與真實ECU進行軟件測試&#xff0c;但由于硬件設備往往在開發周期的中后階段才生產完成&#xff0c;給汽車開發帶來了成本與時間…

理解Solidity 中的 tx.origin 和 msg.sender

開發者需要了解在Solidity中tx.origin和msg.sender的區別。這兩個全局變量經常被混淆&#xff0c;盡管它們之間有著根本的不同。雖然乍一看它們可能相似&#xff0c;但在交易的上下文中&#xff0c;tx.origin和msg.sender代表不同的地址。在這篇博客文章中&#xff0c;我們將深…

spring boot 之 事務

內容是小老弟的一些整理和個人思考總結&#xff0c;知識的海洋那么大&#xff0c;有錯誤的話還請諸位大佬指點一下&#xff01; 事務是一個不可分割操作序列&#xff0c;也是數據庫并發控制的基本單位&#xff0c;其執行的結果必須使數據庫從一種一致性狀態變到另一種一致性狀…

電商內卷時代,視頻號小店憑借一己之力“脫穎而出”

大家好&#xff0c;我是電商笨笨熊 今年618各大電商平臺花樣百出&#xff1b; 某寶更是直接取消了“預售”&#xff0c;從5月就開始進入618預熱期&#xff1b; 不少玩家既開心又難過&#xff0c;市場如此內卷&#xff0c;618確實是個爆發期&#xff0c;但更多的需要不斷壓低…

Star CCM+分配零部件至區域后交界面丟失-更新找回

前言 在工程應用中&#xff0c;將零部件分配至區域后&#xff0c;一般常規的操作需要對交界面進行檢查。偶爾會發現交界面丟失。遇到此類問題&#xff0c;在沒有做其他操作前&#xff08;比如畫網格&#xff09;&#xff0c;可以選擇先刪除所有區域在重新分配至區域。若已經進…

基于SSM的大學生兼職管理系統

基于SSM的大學生兼職管理系統的設計與實現~ 開發語言&#xff1a;Java數據庫&#xff1a;MySQL技術&#xff1a;SpringSpringMVCMyBatis工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系統展示 登錄界面 企業界面 前臺學生界面 管理員界面 摘要 隨著大學生兼職市場的日益繁…

K8s 高級調度

文章目錄 K8s 高級調度CronJobinitContainerTaint 和 Toleration污點&#xff08;Taint&#xff09;容忍&#xff08;Toleration&#xff09; AffinityNodeAffinityPodAnffinity 和 PodAntiAffinity 總結 K8s 高級調度 CronJob 在 k8s 中周期性運行計劃任務&#xff0c;與 li…