空間不足導致的網站事故

 

案例一:

簡要描述:

生產服務器/home目錄磁盤空間100%,導致解壓縮異常,進而導致網站頻 道不能訪問.

服務環境描述:

本地發佈服務器 數據中轉機 預發佈服務器 生產服務器

發佈流程描述:

在本地發佈服務器上編譯打包-->傳輸到數據中轉機-->拉取數據包到預發佈機-->預發佈測試通過-->發佈到生產服務器

場景回放:

預發佈測試通過後,通過發佈腳本發佈服務後,F5報警,應用服務沒有報警,頻道首頁無法打開.

發現生產服務器的頻道首頁index.html 爲空白,monitor文件空白.

原因分析:

生產服務器/home目錄空間100%,tar解壓失敗,腳本繼續執行(bug),生成了空的index.html monitor文件.導致F5自動disable服務,進而導致網站部分功能不能訪問.

補救措施:

web服務器 /home目錄加磁盤容量監控 (整個disk有監控,用戶上傳數據會保存到存儲設備)

修復發佈腳本bug

 

案例二:

簡要描述:

本地發佈服務器磁盤空間100%導致頻道首頁出現錯誤.

腳本摘要:

rm /home/ued/deploy/* -rf

mkdir -p /home/ued/htdocs_convert/htdocs

rsync -aC --delete /home/ued/htdocs /home/ued/htdocs_convert/

rm -rf /home/ued/htdocs_convert/htdocs/old

find /home/ued/htdocs_convert/htdocs -name "*.*"|egrep -i ".s?html?$|.inc$|.js$|.css$"|xargs sed -i "s#http://static.

domain.com//([-._a-zA-Z0-9/]*/)/([0-4a-nA-N]/./)/(jpe/?g/|gif/|png/|swf/)#http://static1.domain.com/$datestamp//1/2/3#g;s#http://s

tatic.domain.com//([-._a-zA-Z0-9/]*/)/([5-9o-zO-Z]/./)/(jpe/?g/|gif/|png/|swf/)#http://static2.domain.com/$datestamp//1/2/3#g;s#ht

tp://static.domain.com#http://static.domain.com/$datestamp#g;"

cd /home/ued/htdocs_convert;tar -cvzf /home/ued/deploy/$DEPLOY_FILE_NAME  htdocs/

./rsync_deploy.sh(發佈後續環節)

異常狀況:

靜態頁面發佈成功後,頻道首頁樣式丟失.

出現http://static.domain.com/1341341243/134413244134/css/style.css 地址

正常地址應該是http://static.domain.com/1341341243/css/style.css

本地發佈服務器的磁盤空間100%

原因分析:

通過產生的地址可以發現腳本中替換部分文件似乎執行了兩遍.

/home/ued/htdocs_convert/(目錄與svn保持一致)

rsync -aC --delete 應該可以保證 /home/ued/htdocs中的文件不會被執行兩次替換啊..

但確實是執行了兩次,奇怪.哪種情況會導致這個問題呢?

其他信息:

/home/ued/htdocs_convert/ (250M)

/home/ued/htdocs_convert/htdocs/old(50M)

壓縮後(40M)

分析結果:

1.空間小於40M,替換完成,壓縮失敗,發佈失敗 此時空間已經100%

2.第二次執行發佈腳本,rsync失敗導致第一次替換後的文件沒有被同步,繼續執行刪除操作(rm -rf /home/ued/htdocs_convert/htdocs/old),釋放了50M空間

3.執行替換操作(注意此時替換了兩次),然後壓縮50M空間已經夠壓縮使用,壓縮成功,發佈成功(css的鏈接被替換了兩次)

4.杯具產生.

 

發佈了22 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章