我常用的4個備份工具

來自專欄 java

不言而喻,備份對我們日常工作是非常重要的,前有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圖形用戶界面的雲存儲服務的文件管理,到最後整個操作系統備份,做了一個簡短的介紹,希望大家可以去嘗試一下,使用好了這幾個工具,我們的文件數據將變得更加安全。如果你有問題或者更好的推薦,歡迎留言來分享你的效率工具。
推薦閱讀:
查看原文 >>
相關文章