數據備份與進程管理

一、數據備份

1.Linux服務器中需要備份的數據

? ? ? ? (1)Linux系統重要數據:/root/目錄,/home/目錄,/etc/目錄

? ? ? ? (2)安裝服務的數據:Apache(配置文件,網頁主目錄,日志文件)

2.備份策略

? ? ? ? (1)完全備份:把所有需要備份的數據全部備份(整塊硬盤、整個分區或某個具體目錄)

? ? ? ? ? ? ? ? ? ? ? ? 優點:數據恢復方便

? ? ? ? ? ? ? ? ? ? ? ? 缺點:備份數據量大,備份時間長,占據空間較多

? ? ? ? (2)增量備份:先進行一次完全備份,后比較數據差異,只備份差異數據

? ? ? ? ? ? ? ? ? ? ? ? 優點:備份數據較少,耗時較少,占用空間較少

? ? ? ? ? ? ? ? ? ? ? ? 缺點:數據恢復比較繁瑣(先恢復完全備份,后按照第一、第二.....增量備份數據恢復)

? ? ? ? (3)差異備份:先進行一次完全備份,后每次備份都備份和原始完全備份數據不同的數據

? ? ? ? ? ? ? ? ? ? ? ? 優點:不需要備份所有數據,數據恢復也比較方便

? ? ? ? ? ? ? ? ? ? ? ? 缺點:隨時間增加,差異備份也可能變得數據龐大,備份緩慢,占用較大空間

3.備份工具

命令格式:dd if="輸入文件" of="輸出文件"? bs="數據塊"? count="數量"

  • if:定義輸入數據的文件,也可以是輸入設備
  • of:定義輸出數據的文件,也可以是輸出設備
  • bs:指定數據塊大小,默認512字節
  • count:指定bs的數量

注:如果想要備份分區,則分區大小不能比原分區小,只能和原分區大小一致或比原分區大;如果需要恢復,只需要把輸入項和輸出項反過來即可

網絡復制工具:rsync和scp

  • rsync:可以實現服務器之間的備份數據,也可以增量備份,實現類似鏡像的效果
  • scp:在Linux之間傳文件,基于ssh的cp

scp? /root/本地文件? root@192.168.25.16:/root/? ? ? ? #上傳

scp? root@192.168.25.6:/root/本地文件? ?/root/? ? ? ? ?#下載

4.xfs文件系統的備份與恢復

注:xfs文件系統支持備份功能,使用xfsdump命令和xfsrestore可以完成備份與恢復

備份——可進行完全備份、增量備份、差異備份

注意事項

  1. 不支持對未掛載文件系統進行備份
  2. 必須使用root身份才有權限執行
  3. 只能備份xfs文件系統,默認只支持備份文件系統
  4. 備份數據只能被xfsrestore解析
  5. 通過UUID來辨別備份文件,不能備份兩個具有相同UUID的文件系統

xfsdump選項

  • -L:記錄每次備份的說明標簽
  • -M:指定存儲媒介的說明標簽
  • -l:指定備份級別(0-9),0是完整備份,1-9是增量備份
  • -f:指定轉儲的目的地
  • -I:從/var/lib/xfsdump/inventory列出目前備份的信息狀態

(1)備份整個分區:xfsdump? -f? 備份文件路徑? 被備份路徑或設備文件

注:被備份路徑可以寫成/dev/sda1或/disk1,不能寫成/disk1/

(2)指定備份是免交互操作

語法:xfsdump? -f? /opt/dump_2? /disk1? -L? dump_2? -M? sda1

(3)指定只備份分區中的某個目錄(-s? 文件路徑[相對路徑])

語法:xfsdump? -f? /opt/dump_test? -s? test? /disk1? -L? dump_test? -M? sda1

(4)文件系統恢復

語法:xfsrestore? -f? 指定恢復文件的位置? 指定存放恢復后的文件路徑

(5)增量備份

全備:xfsdump? -f? /opt/dump_full? /disk1? -L? dump_full? -M? sda1

第n次:xfsdump? -l? n? -f? /opt/dump_backn? /disk1? -L? dump_backn? -M? sda1

二、進程管理

1.進程概述和PS管理進程

進程的組成部分:已分配內存的地址空間,進程ID(PID),程序代碼,進程狀態

進程管理包括:進程調度、中斷處理、信號、進程優先級、進程切換、進程狀態、進程內存等

進程的生命周期:

  1. 父進程復制自己的地址空間(fork)創建一個新的子進程結構
  2. 每個進程分配一個唯一的進程ID(PID),滿足跟蹤安全性之需
  3. PID和父進程(PPID)是子進程環境的元素,任何進程都可以創建子進程
  4. 所有進程都是第一個系統進程的后代
  5. Centos5或6 PID為1的是init,Centos7是systemd

僵尸進程:不執行代碼,占用內存地址空間

  1. 當一個進程收到終止信號時,它結束之前需要一段時間來結束所有任務
  2. 在進程執行所有代碼之后,它將相關終止報告發給父進程
  3. 父進程正常情況下會移除所有子進程的數據結構
  4. 如果父進程沒能接收到子進程的退出信號,那么子進程就變為了僵尸進程
  5. 所以通常在某個很短的時間內,子進程是一個僵尸進程
  6. 使用kill命令不能殺死僵尸進程,因為它已經被認定為死亡
  7. 可嘗試殺死僵尸進程的父進程,僵尸進程也會隨之消失
  8. 如果一個進程為僵尸狀態,父進程是init或systemd,那么需要重啟系統來解決問題

2.進程、線程、協程

  • 進程:是一個執行環境, 包含指令、用戶數據、部分系統數據,以及運行期內獲取的其他資源
  • 線程:較小的輕量級實體,進程中產生的一個執行單位(線程直接可以共享資源,包括內存、地址空間、打開文件等)
  • 協程:最小實體,可通過并發方式運行;協程的創建、切換和銷毀開銷非常低,因為它們在用戶態完成,不涉及操作系統的內核切換(與線程相比,需要的系統資源少,能在更小的內存空間中運行)

3.上下文切換

  1. 在處理器執行期間,運行進程的信息被存儲在處理器的寄存器和高速緩存中。
  2. 執行的進程被加載到寄存器的數據被稱為上下文。
  3. 在實際處理器運行過程中,先存儲運行進程的上下文。
  4. 然后將下一個要運行的進程的上下文恢復到寄存器,這個過程稱之為上下文切換。
  5. 一般不能有太多上下文切換。
  6. 因為處理器每次要刷新寄存器和高速緩存,以便釋放空間給新進程,可能導致性能下降。

4.中斷處理

  1. 中斷是優先級最高的任務之一。
  2. 通常由 I/O 產生,比如網絡接口、鍵盤、磁盤控制器等。
  3. 當一個中斷信號到達內核的時候,內核必須從當前執行的進程切換到一個新的進程,以便處理這個中斷。
  4. 這意味著中斷會導致上下文切換。也就是說大量中斷會導致性能下降。

注:Linux中有硬中斷和軟中斷。硬中斷由硬件產生,需要快速響應(如磁盤I/O中斷,鍵盤中斷,鼠標中斷等);軟中斷被用來處理可以推遲的任務(TCP/IP,SCSI協議操作等)

5.進程的屬性

  • 進程 ID(PID):是唯一的數值
  • 父進程的 ID(PPID)
  • 啟動進程的用戶 ID(UID)和所歸屬的組(GID)
  • 進程狀態:狀態分為運行 R、休眠 S、僵尸 Z
  • 進程執行的優先級
  • 進程所連接的終端名
  • 進程資源占用:比如占用資源大小(內存、CPU 占用量)

6.使用PS查看進程工具

常見選項組合:ps? aux |? more

  • a:顯示跟當前終端關聯的所有進程
  • u:基于用戶的格式顯示
  • x:顯示所有進程,不以終端來區分

  • USER: 啟動這些進程的用戶
  • PID: 進程的 ID
  • %CPU 進程占用的 CPU 百分比
  • %MEM 占用內存的百分比
  • VSZ:進程占用的虛擬內存大小(單位:KB)
  • RSS:進程占用的物理內存大小(單位:KB)
  • STAT:該程序目前的狀態,Linux 進程有 5 種基本狀態:
    R :該程序目前正在運行,或者是可被運行(在運行隊列)
    S :該程序目前正在睡眠當中 ,但可被某些信號喚醒
    T :該程序目前是停止狀態
    Z :該進程應該已經終止,但是其父程序卻沒有正常的終止它
    D 不可中斷的睡眠狀態,通常存在于 I/O 情況下
    I:空閑的內核進程(Rocky9.X)
  • START:該進程被觸發啟動的時間
  • TIME :該進程實際使用 CPU 運行的時間
  • COMMAND:該程序的實際指令

基本狀態后字符:

  • <:進程運行在高優先級上
  • N:進程運行在低優先級上
  • l:進程有頁面鎖定在內存中
  • s:進程是控制進程
  • I:進程是多線程的
  • +:當前進程運行在前臺
  • t:進程被調試器跟蹤時會出現(在編程調試期間會出現)

實驗——

步驟一:在一個終端下創建aaa.txt文件,并vim打開,不修改,另開一個終端查看當前狀態

步驟二:在aaa.txt終端按下ctrl +z 停止進程,在另一個終端再次查看當前狀態

步驟三:tar -zcvf usr.gz /usr/,然后在另一個終端不斷查看狀態,由 S+,R+變為 D+

常見選項組合:ps? -ef

  • e:顯示所有進程
  • f:顯示完整格式輸出

  • UID: 啟動這些進程的用戶
  • PID: 進程的 ID
  • PPID: 父進程的進程號
  • C: 進程生命周期中的 CPU 利用率
  • STIME: 進程啟動時的系統時間
  • TTY: 表明進程在哪個終端設備上運行。如果顯示?表示與終端無關,這種進程一般是內核態進程。另外,tty1-tty6 是本機上面的登入者程序,若為 pts/0 等,則表示運行在虛擬終端上的進程。
  • TIME: 運行進程一共累計占用的 CPU 時間
  • CMD: 啟動的程序名稱

實驗——

步驟一:終端一:dd if=/dev/zero of=/a.txt count=10 bs=100M;終端二:?ps -axu | grep dd

7.補充:free命令

第一行:total 是總內存量,used 是已經使用的內存量,free 是空閑的內存,shared 是多個進程共

享的內存總數,buffers 是緩沖內存數,cached 是緩存內存數。默認單位是 KB。
第二行開始:

  • total 系統中有 1.9Gi?的物理內存,
  • used 是已經使用的內存數量。
  • free 是空閑的內存數量。
  • shared 是多個進程共享的內存數量。
  • buff/cache 用來作為緩沖和緩存的空間,內核會在內存將要耗盡時釋放這部分內存給其他進程使用。
  • availble:可使用空間,評估有多少內存可用于啟動新應用程序。

注:available 字段考慮了頁緩存,而不是所有可回收的內存。正因為這個原因所以通常

free+buff/cache 的數值要比 available 的數值大。
第三行為 swap 虛擬內存。

  1. 在上面信息中我們可以看到,其實系統上并沒有運行什么服務。但是有 1.4G 的 cache,這是因為在實驗過程中進行過多次讀寫執行等操作。
  2. 這些文件會被系統暫時緩存下來,以便下次運行的時候能夠快速的讀取。
  3. 這種使用都是正常的情況,說明物理內存正在被合理的使用
  4. 但是如果我們發現 swap 區域一直被大量使用,這就說明物理內存不足。
  5. 可能需要考慮系統上 swap 使用比例或者添加物理內存。

三、uptime查看系統負載--top動態管理進程

1.uptime查看cpu負載工具

18:54:11當前時間
48系統運行時間,說明系統已經運行了48分鐘
3當前登錄用戶數
load average:0.08,0.17,0.25系統負載均衡,即任務隊列的平均長度。三個數值為1分鐘、5分鐘、15分鐘前到現在的平均值

任務隊列的平均長度(cpu隊列數為3時):

注:如果服務器cpu為1核,則load average>=3為負載過高;如果服務器cpu為4核,則>=12為負載過高(通常單核一分鐘平均負載不要超過3)

2.top命令動態管理

Cpu(s)系統用戶進程使用cpu百分比
sy內核中的進程占用cpu百分比
ni用戶進程空間內改變過優先級的進程占用cpu百分比
id空閑cpu百分比
wacpu等待I/O完成的時間總量
hi(硬中斷消耗時間)硬中斷占的cpu百分比
si(軟中斷消耗時間)軟中斷占的cpu百分比
st(steal偷)虛擬機偷取物理的時間

PID進程id
USER進程所有者的用戶名
PR優先級,由內核動態調整,用戶不能修改。rt表示任務正在實時調度優先級下運行
NI進程優先級,nice值。負值表示高優先級
VIRT虛擬內存,是進程正在使用的所有內存
RES是進程所使用的物理內存,是實際使用內存
SHR共享內存大小,單位kb
S進程狀態
%CPU上次更新到現在的cpu占用百分比
%MEM進程使用的物理內存百分比
TIME+進程使用的cpu時間總計,單位1/100s
COMMAND命令名;命令行

快捷鍵

  • 默認三秒刷新一次,按s修改刷新時間
  • 按空格立刻刷新
  • q退出
  • P按cpu排序
  • M按內存排序
  • T:按時間排序
  • 數字鍵1:顯示每個內核的cpu使用率
  • -p:進程pid,查看某個進程狀態
  • -u/U:指定顯示用戶
  • h:幫助

注:lscpu命令可以查看cpu系統中cpu詳細信息,并且在sockets字段表示物理cpu數量

實驗——

步驟一:使用top動態只查看某個或某些進程的信息

步驟二:找出系統中使用cpu最多的進程

注:在一個linux進程中,最多可以使用的cpu占用百分比跟內核數有關,可以超過100%

3.fuser命令根據文件或端口號找相應進程

  • -k:默認結束進程,也可以執行發送信號(可用信號與kill命令不同)
  • -i:在結束進程前會交互式確認
  • -u:在進程后顯示進程所屬用戶名
  • -c:查看有哪些進程訪問掛載點下文件

實驗——

步驟一:根據/media目錄查看有哪些進程正在訪問目錄,并列出進程用戶名稱

步驟二:查看 boot 分區下有哪些進程在訪問文件

步驟三:查看 tcp 協議 22 號端口有哪些進程

注:對文件或目錄執行會輸出相應的進程號(c表示執行進程的用戶在當前查詢目錄中;f表示文件,但通常文件默認不顯示;r表示root目錄;e表示正在運行的可執行文件)

4.lsof命令:用于查看進程打開的文件、端口(TCP,UDP)

  • -i:列出符合條件的進程。IPv4或IPv6(4,6,協議,:端口,@ip)
  • -p:列出指定進程號所打開的文件

一般用于進程在讀哪些文件,或哪個進程在使用端口

四、前后臺進程切換-nice進程優先級

1.Linux后臺進程與前臺進程的區別

  1. 前臺進程:是在終端中運行的命令,命令執行過程中持續占用前臺。
  2. 依賴終端:那么該終端就為進程的控制終端,一旦這個終端關閉,這個進程也隨之消失。
  3. 脫離終端:一旦這個終端關閉,這個進程不會消失。
  4. 后臺進程: 進程放入后臺運行,通常不會影響當前終端后續命令執行。如:tar -cf 命令等。
  5. 后臺運行并脫離終端:其中有一類進程也叫守護進程(Daemon),是運行在后臺的一種特殊進程,不受終端控制,它不需要終端的交互。
  6. Linux 的大多數服務器就是用守護進程實現的。比如,Web 服務器 httpd 等。

2.進程前臺與后臺運行(跟系統任務相關的幾個進程)

&跟在命令最后,可以把命令放在后臺執行
ctrl+z將前臺命令放在后臺,并且暫停
jobs查看當前后臺運行進程(作業控制命令)
fg將后臺命令調至前臺繼續運行(fg %命令序號)
bg?將后臺暫停命令變為繼續執行(bg %命令序號)
nohup脫離終端

注:雖然bg 1使得后臺暫停命令繼續運行,但vi命令無法在后臺執行,因此很快就停止運行

3.kill給進程發送信號

  • 相關 3 個命令:kill、killall、pkill
  • kill 命令:kill 進程號
  • killall 和 pkill 命令用殺死指定名字的進程
  • 通過信號的方式來控制進程的
  • kill -l =====> 列出所有支持的信號

信號編號信號名作用
1SIGHUP重新加載配置
2SIGINT鍵盤中斷:ctrl + c
3SIGQUIT退出
9SIGKILL強制終止
15SIGTERM終止(正常結束),缺省信號
18SIGCONT繼續
19SIGSTOP停止
20SIGTSTP暫停ctrl + z

命令一:kill命令

補充

實驗一:kill -1重新加載配置實驗,用sshd進程來看,我們正常情況下修改sshd服務監聽22號端口號,改為2200端口,然后再用kill -1命令重新加載更新端口號

準備:SELinux不允許隨便修改服務的監聽端口,因此我們需要先暫時關閉這個服務(enforcing開啟,permissive關閉,也可以直接在配置文件/etc/selinux/config里面永久修改)

查看當前端口號,然后在配置文件/etc/ssh/sshd_config中修改端口號為2200

保存之后,通過systemctl? restart? sshd命令重啟sshd服務,會發現監聽端口號改變,但sshd的進程號也隨著服務的關閉開啟而改變

再次將端口號改回22,使用kill -1重載配置,會發現命令是通過進程重載配置文件,進程號不會變

實驗二:kill -9強制終止實驗。使用sshd服務,正常情況下遠程連接會在/var/run/sshd.pid下生成保存遠程連接進程號的文件。首先通過systemctl stop命令遠程關閉服務,會發現這個文件會被刪除

重新啟動sshd服務,然后改用kill -9強制終止進程,會發現該配置文件沒有被正常清理,變成殘留

因此kill? -9命令存在缺陷,會導致一些因進程產生的文件殘留。

命令二:killall命令(-i 交互式殺死某個進程)

命令三:pkill命令(-t 終端號:按照終端號剔除用戶)

4.進程的優先級管理

注:優先級取值為(-20,19),越小優先級越高,默認為0

命令1:nice -n——指定程序運行的優先級

命令2:renice——改變進程的運行優先級

5.tmux終端復用工具

  • tmux終端復用工具,在R9.4系統中可通過光盤進行rpm安裝。
  • 在系統中默認情況下我們登錄系統會打開相應的終端用于命令輸入,用戶輸入的命令中部分命令屬于依賴終端運行。也就是說用戶退出終端,終端結束,依賴終端命令的進程也就隨之結束。
  • 在tmux中我們可以打開會話,這里的會話類似于系統中的打開終端
  • 在基于tmux的“會話”當中,如果我們以特定方式“退出”會話,會話相應進程是不會結束的(我們可以再次回到此會話),那么基于會話存在的依賴終端的進程也就可以繼續運行。

實驗——

步驟一:安裝tmux包后,開啟會話:tmux或tmux? new-session -s hf01(默認會話名稱為0)

步驟二:切換會話,讓會話臨時退出

ctrl+b+w:列出所有會話,通過上下鍵+Enter切換會話

ctrl+b+d:臨時退出當前會話

進入會話執行exit則表示關閉會話

步驟三:在退出tmux后,可通過輸入tmux ls列出當前存在的會話名稱

步驟四:進入指定會話

步驟五:結束會話(除exit之外)

6.time命令:查看命令執行時間

格式:time CMD

  • real time:時鐘走過的時間
  • user time:程序在用戶態的CPU時間
  • sys time:程序在內核態的CPU時間

7.ulimit:限制普通用戶開啟進程數量

臨時生效配置:ulimit? -u? 15(限制用戶能夠開啟的進程數量是15)

永久生效配置:vim? /etc/security/limits.d/20-nproc.conf(rocky9沒有這個文件,要自己寫)

第一列:用戶名。如果是*則表示全局用戶

第二列:soft指當前系統生效的設置值。hard表面系統中所能夠設置的最大值

第三列:操作系統級別對每個用戶創建的進程數的限制

第四列:限制用戶的進程數量

注:配置重啟之后,可以查看當前用戶限制打開的進程數量:ulimit -u

驗證:安裝stress壓力測試工具進行驗證(需要先安裝epel-release擴展源或直接網上下載rpm包)

步驟:user1用戶使用stress命令開啟15個進程,,用root用戶查看進行驗證

補充:限制用戶能夠寫入的文件大小:ulimit? -f(查看當前用戶能夠創建的文件大小)

注:默認單位kb

補充

  1. 進程調度:操作系統決定哪個就緒進程獲得cpu的執行權的過程
  2. 中斷處理:cpu響應硬件或軟件中斷,暫停當前任務,轉而去執行中斷服務程序,完成后恢復原任務
  3. 信號:內核或進程向目標進程發送的異步通知
  4. 進程優先級:決定進程被調度執行的優先順序
  5. 進程切換:CPU從一個進程切換到另一個進程時,保存當前進程的上下文,并加載新進程的上下文
  6. 進程狀態:運行、就緒、阻塞
  7. 進程內存:進程運行時分配的地址空間

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

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

相關文章

docker volume卷入門教程

1. 基礎概念 Docker卷是專門用于持久化容器數據的存儲方案&#xff0c;獨立于容器生命周期。其核心優勢包括&#xff1a; 數據持久化&#xff1a;容器刪除后數據仍保留跨容器共享&#xff1a;多個容器可訪問同一卷備份與遷移&#xff1a;支持直接復制卷數據驅動支持&#xff1a…

計算機網絡——協議

1. 計算機網絡分層1.1 OSI 7層模型應用層表示層會話層傳輸層網絡層數據鏈路層物理層1.2 TCP/IP 4 層模型應用層運輸層網際層網絡接口層1.3 5層體系機構應用層傳輸層網絡層數據鏈路層物理層2. 應用層協議2.1 HTTP協議2.1.1 基本介紹HTTP&#xff08;HyperText Transfer Protocol…

【React】hooks 中的閉包陷阱

在 React Hooks 中的 閉包陷阱&#xff08;Closure Trap&#xff09;在 useEffect、事件回調、定時器等場景里很常見。1. 閉包陷阱是什么 當你在函數組件里定義一個回調&#xff08;比如事件處理函數&#xff09;&#xff0c;這個回調會捕獲當時渲染時的變量值。如果后面狀態更…

校園快遞小程序(騰訊地圖API、二維碼識別、Echarts圖形化分析)

&#x1f388;系統亮點&#xff1a;騰訊地圖API、二維碼識別、Echarts圖形化分析&#xff1b;一.系統開發工具與環境搭建1.系統設計開發工具后端使用Java編程語言的Spring boot框架 項目架構&#xff1a;B/S架構 運行環境&#xff1a;win10/win11、jdk17小程序&#xff1a; 技術…

Python網絡爬蟲(二) - 解析靜態網頁

文章目錄一、網頁解析技術介紹二、Beautiful Soup庫1. Beautiful Soup庫介紹2. Beautiful Soup庫幾種解析器比較3. 安裝Beautiful Soup庫3.1 安裝 Beautiful Soup 43.2 安裝解析器4. Beautiful Soup使用步驟4.1 創建Beautiful Soup對象4.2 獲取標簽4.2.1 通過標簽名獲取4.2.2 通…

【Linux基礎知識系列】第九十四篇 - 如何使用traceroute命令追蹤路由

在網絡環境中&#xff0c;了解數據包從源主機到目標主機的路徑是非常重要的。這不僅可以幫助我們分析網絡連接問題&#xff0c;還可以用于診斷網絡延遲、丟包等問題。traceroute命令是一個強大的工具&#xff0c;它能夠追蹤數據包在網絡中的路徑&#xff0c;顯示每一跳的延遲和…

達夢數據閃回查詢-快速恢復表

Time:2025/08/12Author:skatexg一、環境說明DM數據庫&#xff1a;DM8.0及以上版本二、適用場景研發在誤操作或變更數據后&#xff0c;想馬上恢復表到某個時間點&#xff0c;可以通過閃回查詢功能快速實現&#xff08;通過全量備份恢復時間長&#xff0c;成本高&#xff09;三、…

力扣(LeetCode) ——225 用隊列實現棧(C語言)

題目&#xff1a;用隊列實現棧示例1&#xff1a; 輸入&#xff1a; [“MyStack”, “push”, “push”, “top”, “pop”, “empty”] [[], [1], [2], [], [], []] 輸出&#xff1a; [null, null, null, 2, 2, false] 解釋&#xff1a; MyStack myStack new MyStack(); mySta…

微軟推出AI惡意軟件檢測智能體 Project Ire

開篇 在8月5號&#xff0c;微軟研究院發布了一篇博客文章&#xff0c;在該篇博客中推出了一款名為Project Ire的AI Agent。該Agent可以在無需人類協助的情況下&#xff0c;自主分析和分類二進制文件。它可以在無需了解二進制文件來源或用途的情況下&#xff0c;對文件進行完全的…

哪些對會交由SpringBoot容器管理?

在 Spring Boot 中,交由容器管理的對象通常稱為“Spring Bean”,這些對象的創建、依賴注入、生命周期等由 Spring 容器統一管控。以下是常見的會被 Spring Boot 容器管理的對象類型及識別方式: 一、通過注解聲明的組件(最常見) Spring Boot 通過類級別的注解自動掃描并注…

Android POS應用在android運行常見問題及解決方案

概述 本文檔記錄了在Android POS應用開發過程中遇到的兩個關鍵問題及其解決方案&#xff1a; UnsatisfiedLinkError: couldnt find "libnative.so" 錯誤ActivityNotFoundException 錯誤商戶信息一致性檢查繞過 問題1&#xff1a;UnsatisfiedLinkError - libnative.so…

基于SpringBoot的旅游網站系統

1. 項目簡介 旅游線路管理系統是一個基于Spring Boot的在線旅游服務平臺&#xff0c;提供旅游線路展示、分類、預訂、訂單管理等功能。系統包含前臺用戶界面和后臺管理模塊&#xff0c;支持用戶注冊登錄、線路瀏覽、收藏、下單支付、客服咨詢等核心功能。管理員可管理線路信息、…

CVPR 2025 | 機器人操控 | RoboGround:用“掩碼”中介表示,讓機器人跨場景泛化更聰明

點擊關注gongzhonghao【計算機sci論文精選】1.導讀1.1論文基本信息論文標題&#xff1a;ROBOGROUND: Robotic Manipulation with Grounded Vision-Language Priors作者&#xff1a;Haifeng Huang, Xinyi Chen, Hao Li&#xff0c; Xiaoshen Han, Yilun Chen, Tai Wang, Zehan W…

構建Node.js單可執行應用(SEA)的方法

如果為了降低部署復雜度&#xff0c;可以考慮使用vercel/ncc。除非有特別理由&#xff0c;不建議使用SEA。1. 環境準備1.1. 基礎要求Node.js: > 19.0.0 (推薦最新LTS版本)1.2. 安裝依賴npm install postject typescript1.3. 驗證環境node -v # 確認版本 > 19 ts…

Java19 Integer 位操作精解:compress與expand《Hacker‘s Delight》(第二版,7.4節)

compress(int i, int mask) 這個方法是Java 19中新增的一個強大的位操作函數。compress 方法的核心功能可以理解為 “按位過濾和壓縮” 。過濾 (Filter): 它使用 mask&#xff08;掩碼&#xff09;作為過濾器。對于輸入整數 i&#xff0c;只有那些在 mask 中對應位為 1 的比特才…

minio部署和雙機熱備

安裝單機版MinIO&#xff08;準備2臺機器A、B,A、B服務器操作一致&#xff09;切換目錄并下載MinIO二進制文件cd /usr/local/bin wget https://dl.minio.org.cn/server/minio/release/linux-amd64/minio chmod x minio編輯配置文件vi /etc/default/minio.confMINIO_VOLUMES&quo…

【Java】 Java 21 革命性升級:虛擬線程與結構化并發的深度實踐指南

還在為高昂的AI開發成本發愁?這本書教你如何在個人電腦上引爆DeepSeek的澎湃算力! Java 21 作為 Oracle JDK 的長期支持版本,引入了多項革命性特性,其中虛擬線程(Virtual Threads)和結構化并發(Structured Concurrency)尤為突出。這些特性旨在解決傳統線程模型在高并發…

Apache IoTDB 全場景部署:基于 Apache IoTDB 的跨「端-邊-云」的時序數據庫 DB+AI

Apache IoTDB 全場景部署&#xff1a;基于 Apache IoTDB 的跨「端-邊-云」的時序數據庫 DBAI 文章目錄Apache IoTDB 全場景部署&#xff1a;基于 Apache IoTDB 的跨「端-邊-云」的時序數據庫 DBAIApache IoTDB 介紹Docker部署指導企業版數據庫配套工具 WorkbenchTimechoDB&…

計算機網絡---傳輸控制協議Transmission Control Protocol(TCP)

一、TCP的定位與核心特性 TCP&#xff08;Transmission Control Protocol&#xff0c;傳輸控制協議&#xff09;是TCP/IP協議棧中傳輸層的核心協議&#xff0c;與UDP&#xff08;用戶數據報協議&#xff09;共同承擔端到端數據傳輸功能。其設計目標是在不可靠的IP網絡上提供可靠…

week1-[分支嵌套]公因數

week1-[分支嵌套]公因數 題目描述 給定 444 個正整數 a,b,c,ka,b,c,ka,b,c,k。如果 a,b,ca,b,ca,b,c 都是 kkk 的倍數&#xff0c;那么稱 kkk 是 a,b,ca,b,ca,b,c 的公因數。否則如果某兩個數都是 kkk 的倍數&#xff0c;那么稱 kkk 是這兩個數的公因數。問 kkk 是哪些數的公因…