前段時間有個老同學請我幫他寫個爬蟲爬一些關於天氣空氣之類的資料。
看在老同學的份上我也沒收他錢 =w= 反正很簡單
於是我用nodejs按照他的要求順手寫了乙個爬蟲。
> 專案位址
我爬下來的資料是放在mongodb中的,可是我的這位老同學呢,是個小白,我也不放心把ssh許可權給他,哪怕低許可權使用者;他也不大可能用得順手。
他需要乙個csv格式的檔案就夠了,於是我需要用mongoexport
將資料匯出成csv檔案,但是怎麼讓他直接獲取呢?
現在我有若干個選擇:
1. 使用scp、ftp等支援檔案傳輸的方式(需要賬號密碼,比較麻煩而且有可能損害我的伺服器)
2. 使用web伺服器通過http協議發布(資料版本難控制)
3. 將資料推送到github上
現在問題就在怎麼自動定時推送資料了,畢竟我可不想隔一段時間就專門去執行指令碼推送一下資料。
參考 ubuntu cron 定時執行任務 配置定時任務執行指令碼。
結果是這樣的,包括了匯出指令碼。
> 自動發布位址
現在只需要告訴我的老同學上面這個自動發布位址就好了=w=
以上背景給出了乙個啟示:用git進行資料的版本控制。
資料庫備份是一件相當重要的事情,搞過系統運維的人大多都非常重視這一點。
重要性不用多說,在版本控制軟體git沒有出現之前,工程師們就已經使用定時任務來備份資料了。
最後那個儲存備份的目錄可能是這樣的:
2015-01-01.sql
...2016-04-20.sql
2016-04-21.sql
2016-04-22.sql
由於資料庫有可能並不儲存資料的產生時間。
但是有了git以後,那就不一樣了,你可以使用git進行資料版本控制。
首先,使用資料庫工具將資料匯出到檔案,比如:
data.sql
在這個目錄下建立並配置好git倉庫,並寫乙個指令碼
從資料庫中匯出資料到data.sql
git add *
git commit -m 「update」
如果要儲存到其他的git伺服器上,再加乙個 git push
然後定期執行它。
在git log
中就會儲存每次備份的時間、資訊等,回滾也非常方便。
好處云云,不用多說,腦補一下就覺得很棒啊。
git版本控制
1.git 是乙個開源的分布式版本控制系統,可以有效 高速的處理從很小到非常大的專案版本 管理。2.git配置管理 一般,有乙個 集中庫,包含4個分支 qa才能merge production 發布生產,出現生產問題,轉hotfix 研發經理 hotfix 解決緊急生產問題,測試後轉producti...
版本控制 Git
git 是目前世界上最先進的開源的分布式版本控制系統 沒有之一 用於敏捷高效地處理任何或小或大的專案。git 是 linus torvalds 為了幫助管理 linux核心開發而開發的乙個開放原始碼的版本控制軟體。git 與常用的版本控制工具 cvs,subversion 等不同,它採用了分布式版本...
GIT版本控制
不同情況下,實現版本回退 1.對於修改內容後,未add,未commit 可以利用git checkout 檔名 2.對於修改內容後,add,未commit get reset head 檔名 git checkout 檔名 3.對於修改內容後,add,commit 可以回到任何乙個版本 root g...