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