linux系統運行時_安全的_備份_還原_方法rsync

1.問題與需求

問題:

  1. 新部署的機器設備(主控RK3588), 沒有經過燒錄定制鏡像, 研發部署, 直接組裝發送到客戶現場
  2. 需要通過frpc遠程部署: 安裝ros2 + python包 + docker鏡像 + 環境配置 + 自啟動配置 + SN設備信息
  3. 寫自動部署腳本, 實現一鍵部署升級
  4. 無奈物聯網卡做了白名單限制, apt 和 pip 在線安裝依賴庫失敗, 需要現場人員支持, 開放手機熱點,
  5. 在線安裝速度較慢, 需要30~40分鐘, 才能安裝, 部署, 調試好一臺設備

需求:

期望能有一種不依賴現場人員 介入/操作, 更快速的部署方式

2.方案選擇_與_實現

1.方案匯總

優點缺點
RKDevTool.exe 燒錄1.官方工具, 燒錄鏡像速度最快1.需要現場人員支持, 讓主控rk3588進入 dload/maskrom 模式
2.需要現場人員, 攜帶筆記本電腦+usb線, 安裝瑞芯微usb驅動, 進行固件燒錄
dd備份,還原1.還原速度極快1.系統運行時, dd 還原 rootfs分區, 覆寫根文件系統分區, 導致命令失敗; 需要進入recovery模式還原
2.需現場人員支持, 按recovery鍵+重啟, 讓系統進入recovery模式(類似PC電腦進入Live CD模式), dd還原分區
tar備份,還原1.部署速度中等1.系統運行時, tar覆蓋根文件系統文件, 概率導致進程運行異常; 導致部署失敗
2.同dd還原, 需要現場人員支持, 讓控制器進入recovery模式(類似PC Live CD模式), tar 還原才能安全還原成功
rsync備份,還原1.屬于增量升級
2.部署成功率較高, 較為安全
1.第一次部署速度較慢, 后續增量更新速度較快
一鍵部署腳本部署成功率高1.部署速度慢
2.物聯網卡有白名單限制, apt和pip安裝命令失敗, 需求現場人員手機熱點, 或連接其它可上網網絡

2.各方案命令實現

[!info] 說明
系統磁盤: /dev/nvme0p1
rootfs分區: /dev/nvme0p1p8
第二磁盤(擴展磁盤): /dev/sda3, 掛載目錄/mnt/disk

1.dd 系統備份_還原命令

備份

# 備份
dd if=/dev/nvme0p1p8 of=/mnt/disk/rootfs.img
# 修復文件錯誤
e2fsck -f -p rootfs.img
# 減少鏡像大小
resize2fs -M rootfs.img

還原

# 還原
dd if=rootfs.img of=/dev/nvme0p1p8
# 分區擴容
resize2fs /dev/nvme0p1p8

ssh遠程dd_備份_還原

# 遠程主機磁盤備份到本地
ssh user@ip "dd if= /dev/nvme0p1p8" | dd of=rootfs.img# 本地備份恢復到遠程主機
dd if=rootfs.img | ssh user@ip "dd of=/dev/sda"

ssh遠程dd_備份_還原_壓縮版

# 備份
ssh usr@ip "sudo dd if=/dev/sda | gzip -c" | dd of=rootfs.img.gz# 還原
dd if=rootfs.img.gz | ssh user@ip "gunzip | dd of=/dev/sda"

2.tar 系統備份_還原命令

備份

# 備份
tar -pcf /mnt/disk/rootfs.tar --exclude={"/dev","/proc","/sys","/tmp","/var","/run","/mnt","/media","/lost+found"} /# 備份+壓縮為gz
tar -zpcf /mnt/disk/rootfs.tar.gz --exclude={"/dev","/proc","/sys","/tmp","/var","/run","/mnt","/media","/lost+found","/bak"} /

還原

# 還原
tar -pxf  /mnt/disk/rootfs.tar -C /# 解壓gz + 還原
tar -zpxf  /mnt/disk/rootfs.tar.gz -C /

3.rsync 系統備份_還原命令

備份

# 備份
sudo rsync -aAX --delete --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/var","/run/*","/mnt/*","/media/*","/lost+found","/bak"} / /mnt/disk/rootfs# 壓縮
tar -zpcf /mnt/disk/rootfs.tar.gz /mnt/disk/rootfs

還原

# 解壓
tar -zpxf /mnt/disk/rootfs.tar.gz -C /mnt/disk/rootfs# 還原
sudo rsync -aHAXx --no-perms --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /mnt/disk/rootfs/ /

rsync遠程備份_還原

# 備份到其它設備上
rsync -aAXvz --delete --progress -e ssh \--exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/var/cache/*","/var/tmp/*"} \/ usr@ip:/home/xxx/rootfs# 從遠程設備還原到本地
sudo rsync -aAXvz --delete -e ssh usr@ip:/home/xxx/rootfs /

3.方案確認

經過20~30臺機器設備部署, 實測rsync升級_部署_較快,較安全(在系統已經運行情況下)成功率100%

1.rsync本質上, 屬于增量備份_還原, 系統已有的文件不會被復寫, 只有新文件+變更文件, 才會被更新同步;

  • 在系統已經運行狀態下:
    • dd 還原命令失敗
    • tar 覆寫系統文件, 會導致系統服務/進程異常, 已運行進程禁止寫, 導致失敗

2.rsync解壓與還原速度中等, 慢于RKDevTool.exe燒錄, 和 dd還原
3.優點是: 不需要人工介入/操作, 只需要下載 + 解壓 + 還原 (注: 燒錄,dd,tar 需要人工操作, 進入指定模式)

注:
rsync同步也同樣推薦在recovery模式(類似PC Live CD模式), 安全性才最高

4.其它想法

  1. 能否夠通過修改uboot配置, 讓系統進入recovery模式 --> 從而實現dd還原
  2. 假設 / 和 /boot 掛載到不同的分區, 創建一個新根文件分區, 并有一個基礎的linux系統環境, 通過修改grub/uboot參數, 讓系統從另一個 根文件分區啟動(類似recovery分區) --> 從而實現dd還原
  3. 想嘗試新一代文件系統: zfs, brtfs 快照, 導出, 部署功能; 文件系統支持特性, 實現快速導出, 部署到其它設備

uboot修改 根文件分區

vim /boot/extlinux/extlinux.conf

console=ttyFIQ0,1500000 root=/dev/mmcblk1p5 rw rootwait
console=ttyFIQ0,1500000 root=/dev/mmcblk1p6 rw rootwait

grub修改 根文件分區

vim /boot/grub/grub.cfg

linux	/vmlinuz-5.19.0-32-generic root=UUID=19cceeeb-61f6-43e4-afbd-1bff9940bac5 ro recovery nomodeset dis_ucode_ldr
linux	/vmlinuz-5.19.0-32-generic root=UUID=19cceeeb-61f6-43e4-afbd-1bff9940xxxx ro recovery nomodeset dis_ucode_ldr

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

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

相關文章

18套精美族譜Excel模板,助力家族文化傳承!

【資源分享】18套精美族譜Excel模板,助力家族文化傳承! 🎯 本文分享一套完整的家族譜系資源,包含18個精心設計的Excel模板,從基礎模板到專業圖表,滿足各類家族的族譜制作需求。 一、為什么要制作族譜&…

MySQL Galera Cluster企業級部署

一、MySQL Galera Cluster簡介 主要特點 同步復制: 所有的寫操作(包括插入、更新、刪除)在集群中的所有節點上都是同步的。這意味著每個節點上的數據是完全一致的。 多主節點: 集群中的每個節點都是主節點。所有節點都可以處理讀…

HTTP 重定向

什么是 HTTP 重定向? HTTP 重定向(HTTP Redirect) 是服務器向客戶端(通常是瀏覽器)發出的指令,告訴客戶端某個請求的資源已被移到新的位置。重定向通常通過發送一個特殊的 HTTP 狀態碼(例如 3x…

本地加載非在線jar包設置

項目中存在私有jar包,提示在線獲取不到,需要先獲取到完整的jar包在打進maven中再在項目中進行maven依賴引入 mvn install:install-file -DfileD:\tools\maven\apache-maven-3.5.2\local_repository2\org\ahjk\SixCloudCommon\1.0\SixCloudCommon-1.0-SN…

Codeforces Round 979 (Div. 2)

A c[1]-b[1]0,之后每個c[1]-b[1]最大都是maxa-mina,最大和最小放前兩個 B ans2^(a1)-2^s-1,1一個最小 C 我們可以把式子化為(....)||(....)||(....)括號里沒有||,如果括號全是1那么A贏,A盡量選擇把1選在一起 D …

UI前端大數據處理性能瓶頸突破:分布式計算框架的應用

hello寶子們...我們是艾斯視覺擅長ui設計、前端開發、數字孿生、大數據、三維建模、三維動畫10年經驗!希望我的分享能幫助到您!如需幫助可以評論關注私信我們一起探討!致敬感謝感恩!一、引言:前端大數據處理的性能困境與破局之路在數據爆炸增長的時代,UI…

病蟲害數據集

數據是泰迪杯主辦方提供的已經標記好的數據,4k畫質的圖片,總大小8個G 鏈接:https://pan.baidu.com/s/1fvmNHGrLvflEovjfCjDLOw?pwd6666 提取碼:6666 蟲害包括: 八點灰燈蛾 褐飛虱屬 白背飛虱 二化螟 蟋蟀 黃足…

JAVA基礎:關于JDK環境變量設置的若干相關細節及注意事項

一、JDK下載安裝 網址:https://www.oracle.com/java/technologies/downloads/ 以 win11 為例,根據網址下載安裝包后,點擊安裝,注意設置安裝路徑 二、基礎常識 1.Java三大使用平臺 Java SE(Java Standard Edition): 標準版&…

C++高頻知識點(四)

文章目錄 16. 虛基類要解決什么問題?17. C中如何進行類型轉換操作?列舉并解釋四種類型轉換方式。18. 什么是函數重載?如何進行函數重載?19. 解釋C中的友元函數和友元類,并解釋其使用場景。友元函數友元類 20. 請解釋C中…

【Servlet資源轉發介紹】

文章目錄 前言一、Servlet 資源轉發是什么?1. 為什么要資源轉發? 二、資源轉發 vs 重定向三、如何使用 RequestDispatcher 進行資源轉發1. 引入依賴2. 獲取 RequestDispatcher3. forward 示例4. include 示例JSP 中 include 指令或動作Servlet 中 includ…

牛客周賽 Round 99題解

Round 99 思路&#xff1a;我們之間去用字符串去統計即可&#xff0c;輸入一個字符串&#xff0c;看相鄰有沒有99即可 #include<bits/stdc.h> using namespace std; #define int long long string s; signed main() {cin>>s;int ns.size();for(int i1;i<n;i){i…

AR 如何改變我們構建網站的方式

想坐在沙發上試鞋子&#xff1f;歡迎來到 Web AR 的世界。還記得你在網頁上逛商城時&#xff0c;點擊一副墨鏡&#xff0c;然后鏡頭打開&#xff0c;它就自動出現在你臉上的那一瞬間嗎&#xff1f;不需要下載 App&#xff0c;不需要跳轉&#xff0c;只需一個瀏覽器。這不是科幻…

華為OD機試 2025B卷 - 貨幣單位轉換(C++PythonJAVAJSC語言)

2025B卷目錄點擊查看: 華為OD機試2025B卷真題題庫目錄|機考題庫 + 算法考點詳解 2025B卷 100分題型 題目描述 記賬本上記錄了若干條多國貨幣金額,需要轉換成人民幣分(fen),匯總后輸出。 每行記錄一條金額,金額帶有貨幣單位,格式為數字+單位,可能是單獨元,或者單獨分…

php協程

開發需求:在一套老項目中&#xff08;fastadmin&#xff09;實現一個定時任務&#xff0c;每分鐘訪問幾十個接口&#xff0c;拿到數據。 使用的swoole&#xff0c;在thinkphp5中實現協程。啟動命令php swoole.php <?php //chdir(__DIR__); define(APP_PATH, __DIR__ . /app…

【教程】強制關閉Windows防火墻的自啟動

轉載請注明出處&#xff1a;小鋒學長生活大爆炸[xfxuezhagn.cn] 如果本文幫助到了你&#xff0c;歡迎[點贊、收藏、關注]哦~ 背景說明 字節云的Windows server真是有點問題&#xff0c;忽然就開始自動開啟防火墻&#xff0c;手動關閉了過幾個小時又重新開啟了&#xff0c;導致…

【Qt】QSignalMapper

QSignalMapper 是 Qt 提供的一個用于信號映射的類&#xff0c;它允許將多個信號源&#xff08;例如按鈕點擊&#xff09;映射到一個單一的槽函數&#xff0c;并傳遞自定義參數。這在需要根據不同的觸發對象執行相似邏輯時非常有用。 用法說明 創建 QSignalMapper 實例&#xf…

Android Binder與AIDL與Service使用案例及分析

水一篇以前寫的文章?? Binder是Android內置的一種比較高效的跨進程機制,它很復雜,也很好用,可以讓我們像調用普通方法那樣完成跨進程式方法調用和數據傳遞。我們現在只需要知道它比較復雜以及怎么使用即可。 ALDL全名Android interface Definition Language, 是Android…

基于ConvLSTM的行人檢測與跟蹤預測算法研究

基于ConvLSTM的行人檢測與跟蹤預測算法研究 摘要 本文詳細探討了基于ConvLSTM(卷積長短期記憶網絡)的行人檢測與跟蹤預測算法的設計與實現。該算法結合了卷積神經網絡(CNN)的空間特征提取能力和長短期記憶網絡(LSTM)的時間序列建模優勢,能夠有效處理視頻序列中的行人檢測與…

深度學習基礎2

5.張量索引操作 &#xff08;1&#xff09;索引操作 行列索引列表索引 print(data[[0, 2], [1, 2]]) #返回(0, 1)&#xff0c;(2, 2)兩個位置的元素print(data[[[0], [1]], [1, 2]]) # 返回0&#xff0c;1行的1&#xff0c;2列共4個元素范圍索引 print(data[:3, :2]) # 前3行前…

Web安全:CSRF的攻擊原理與防御措施

什么是 CSRF&#xff1f; CSRF&#xff08;Cross-Site Request Forgery&#xff0c;跨站請求偽造&#xff09;是一種利用 瀏覽器自動攜帶 Cookie 的機制&#xff0c;誘騙用戶在已登錄目標網站的情況下&#xff0c;執行惡意操作的攻擊方式。 攻擊核心特點&#xff1a; 攻擊者 不…