實際生活中類似的事情或多或少都會有那麼一些。比如電腦藍屏,虛擬機器突然壞掉,導致一天都在重新折騰配置工作環境,比如誤刪了自己電腦裡面相簿資料或者開發文件,導致重新整理或書寫,甚至直接電腦摔壞或者被偷了。
這一系列問題多多少少與我們備份有關,今天我主要分享幾個我日常用的比較多的備份工具給大家。
Git版本控制系統
提到備份,毫無疑問必須是版本控制系統--Git。
首先我們簡單解釋一下什麼是版本控制,它主要是記錄一個或多個檔案內容變化,以便將來進行查閱版本修訂的系統。
有了Git,你能很容易追溯到歷史的各個版本,你能隨意更改變更,最後很容易回到之前的樣子,幾乎不會增加額外的工作就能實現。
說到這裡,就要解釋下為什麼我不喜歡用word進行寫文件,而是用Markdown,不僅僅Markdown簡單好用易於排版,還有一個md檔案是普通文字檔案,而word生成的docx是二進位制檔案,只能監聽到改動卻無法對改動進行恢復對比。
還記得我們大學寫畢業論文的時候,產生7,8個版本的word文件場景麼?
每次論文的每個版本或多個版本之間,對比非常困難,不能很好差異化,管理還原出來。(即使word有對比功能)
實際情況我們論文可以嘗試Git+Markdown進行管理書寫,再通過Pandoc 生成docx,即可以進行版本控制又可以以標準格式交差。
Rsync檔案備份
說完檔案監聽控制,我們談一下Rsync,它是一個Linux系統管理員常用的命令列工具,常用於資料拷貝備份,主要用於開發過程中操作。比如我們開發過程傳輸程式碼到線上伺服器的時候,或者備份資料庫或者日誌檔案等等。
主要特點:
資料傳輸進行指定壓縮解壓縮,減少頻寬佔用
差異計算,檔案對比,檔案更新才進行傳輸(即增量同步)
簡單用法如下:
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書寫,通過雲端計算實現和網際網路檔案同步,用於儲存和共享檔案及資料夾。
主要特點:
全自動備份,增量更新
支援兩步認證,儲存更安全
分享/協作自由方便
IFTTT輔助功能
如果因為Qiang的問題而放棄優秀的工具,是得不償失的,建議大家都去嘗試一下。
Time Machine時光機器
最後來說說對整個作業系統備份--Time Machine(時光機器),它是 Mac OS X 內建的備份工具,它可以自動按照每小時,每天或者每週來對你的蘋果電腦進行備份。
可以在本地或者外接鍵盤進行備份。比如我家裡面就是使用LaCie外接硬碟進行系統備份的。
如果你要進行系統升級或者資料遷移,Time Machine將是你最好的安全防線,強烈建議Mac的同學開啟進行備份。
上面的四個工具,我們從檔案細微變更(Git),到命令列檔案增量同步(Rsync)備份,到Dropbox圖形使用者介面的雲端儲存服務的檔案管理,到最後整個作業系統備份,做了一個簡短的介紹,希望大家可以去嘗試一下,使用好了這幾個工具,我們的檔案資料將變得更加安全。
如果你有問題或者更好的推薦,歡迎留言來分享你的效率工具。
本文首發微信公眾號