背景
jenkins執行去執行shell指令,其中引用了一些jenkins的變量,如${WORKSPACE}這種,因為每次執行jenkins比較慢,于是想複制腳本出來想本地調試一下,直接複制了腳本過來執行,結果又這麼一句
rm -rf ${WORKSPACE}/*
用root去執行,結果就崩盤了,發現删除了系統檔案和目錄,當終止的時候,已經來不及了
分析
由于${WORKSPACE}不存在,就是空了的,是以指令基本上就是rm -rf /*
然後就爆炸了,哎,隻能找運維幫忙修複了的
後記
1. 權限控制,盡量不要用root,尤其是删除操作;
2. 删除邏輯加入判斷,判斷目錄是否存在,如下:
#!/bin/bash
pwd
cd ${WORKSPACE}
pwd
if [ ! ${WORKSPACE}];then
exit -1;
echo "${WORKSPACE}不存在"
else
echo "存在"
fi
雖千萬人,吾往矣!