我常用的4個備份工具

  • 2019 年 10 月 8 日
  • 筆記

本文轉自公眾號『濤哥聊Python』,詳情請關注該公眾號:

不言而喻,備份對我們日常工作是非常重要的,前有GitLab誤刪300G數據實時恢複數據刺激過程,後有騰訊雲故障丟失客戶數據,遭千萬索賠的尷尬場景。

實際生活中類似的事情或多或少都會有那麼一些。比如電腦藍屏,虛擬機突然壞掉,導致一天都在重新折騰配置工作環境,比如誤刪了自己電腦裡面相冊數據或者開發文檔,導致重新整理或書寫,甚至直接電腦摔壞或者被偷了。

這一系列問題多多少少與我們備份有關,今天我主要分享幾個我日常用的比較多的備份工具給大家。

Git版本控制系統

提到備份,毫無疑問必須是版本控制系統–Git

首先我們簡單解釋一下什麼是版本控制,它主要是記錄一個或多個文件內容變化,以便將來進行查閱版本修訂的系統。

有了Git,你能很容易追溯到歷史的各個版本,你能隨意更改變更,最後很容易回到之前的樣子,幾乎不會增加額外的工作就能實現。

說到這裡,就要解釋下為什麼我不喜歡用word進行寫文檔,而是用Markdown,不僅僅Markdown簡單好用易於排版,還有一個md文件是普通文本文件,而word生成的docx是二進位文件,只能監聽到改動卻無法對改動進行恢復對比。

還記得我們大學寫畢業論文的時候,產生7,8個版本的word文檔場景么?

每次論文的每個版本或多個版本之間,對比非常困難,不能很好差異化,管理還原出來。(即使word有對比功能)

實際情況我們論文可以嘗試Git+Markdown進行管理書寫,再通過Pandoc 生成docx,即可以進行版本控制又可以以標準格式交差。

Rsync文件備份

說完文件監聽控制,我們談一下Rsync,它是一個Linux系統管理員常用的命令行工具,常用於數據拷貝備份,主要用於開發過程中操作。

比如我們開發過程傳輸程式碼到線上伺服器的時候,或者備份資料庫或者日誌文件等等。

主要特點:

  1. 數據傳輸進行指定壓縮解壓縮,減少頻寬佔用
  2. 差異計算,文件對比,文件更新才進行傳輸(即增量同步)

簡單用法如下:

rsync -avz source_dir dest_dir(username@host:PATH) --exclude "*.pyc*" --delete  其中 -v  verbose 詳細輸出      -a  歸檔模式,遞歸方式傳輸文件      -z  壓縮文件傳輸      -h  human-readable, 輸出友好      --exclude 不包括 pyc的文件,      --delete刪除在源端不存在的文件(不加不會默認刪除)        # source_dir 帶 `/ ` 會把所有內容複製到目的端,不帶就會創建複製同名目錄,源端同理。  

日常工作中我們備份數據常常用crontab進行定期執行rsync命令,但是為了更方便管理我們對服務的操作,可以把命令的shell文件加入版本控制裡面,通過Celery Beat來進行統一執行定時任務。

Dropbox雲存儲

說完數據文件的命令行備份,我們簡單說一下圖形用戶介面的Dropbox。

Dropbox是一個線上雲存儲服務,最初由Python書寫,通過雲計算實現和互聯網文件同步,用於存儲和共享文件及文件夾。

主要特點:

  1. 全自動備份,增量更新
  2. 支援兩步認證,存儲更安全
  3. 分享/協作自由方便
  4. IFTTT輔助功能

如果因為Qiang的問題而放棄優秀的工具,是得不償失的,建議大家都去嘗試一下。

Time Machine時光機器

最後來說說對整個作業系統備份–Time Machine(時光機器),它是 Mac OS X 內置的備份工具,它可以自動按照每小時,每天或者每周來對你的蘋果電腦進行備份。

可以在本地或者外接鍵盤進行備份。比如我家裡面就是使用LaCie外接硬碟進行系統備份的。

如果你要進行系統升級或者數據遷移,Time Machine將是你最好的安全防線,強烈建議Mac的同學開啟進行備份。

恢復任意時刻系統圖

上面的四個工具,我們從文件細微變更(Git),到命令行文件增量同步(Rsync)備份,到Dropbox圖形用戶介面的雲存儲服務的文件管理,到最後整個作業系統備份,做了一個簡短的介紹,希望大家可以去嘗試一下,使用好了這幾個工具,我們的文件數據將變得更加安全。

如果你有問題或者更好的推薦,歡迎留言來分享你的效率工具。