背景
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
虽千万人,吾往矣!