天天看點

大坑記錄 - shell腳本删除操作背景分析後記

背景

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      

雖千萬人,吾往矣!