专栏名称: 马哥Linux运维
马哥linux致力于linux运维培训,连续多年排名第一,订阅者可免费获得学习机会和相关Linux独家实战资料!
目录
相关文章推荐
51好读  ›  专栏  ›  马哥Linux运维

七年老运维实战中的 Shell 开发经验总结

马哥Linux运维  · 公众号  · 运维  · 2019-11-20 21:00

正文

请到「今天看啥」查看全文


8 )对文件进行打包备份时,必须使用相对路径进行打包,如:

严禁将全路径打入 tar 包, 如:

9 )对于打包后还需进行压缩的文件,建议使用管道进行处理,如:

不建议两部分分开执行:

10 )使用 ps 命令筛选进程时,如能确定进程所属用户,必须在参数中指定用户名称,如其输出作为 kill 命令的输入,则必须指定进程所属用户,如:


这里介绍的主要是日常shell编写中遇到比较隐蔽或看似简单,却难以发现的“坑”,编写中应尽量避免使用,使用更优的方法避免重蹈覆辙。


1 )更新文件使用 > 不用 cp

使用 > 修改和回退文件时,保留原文件的属组和权限,避免使用 cp 时权限属组被修改。

2 )使用 kill 前确认

关键字用 -w 精确匹配字段;

kill 前后都保留现场 , 两次 ps -ef|grep -w 关键字 |grep -v grep >>/tmp/kill_ 进程名 _.backup

删除前要校验,获取进程号是否唯一,避免多杀或误杀的情况。

3 )使用 rm 前确认

删除前备份删除对象信息,避免使用变量,直接使用文件和目录名;

如果必须使用时,删除前,建议检查避免误删,删除目录和文件信息保留:

建议禁用 find 遍历根目录进行查找,同时删除前进行确认,避免多删或误删的情况。

4 For 循环的坑

for 循环的 in 条件按空格来区分,避免进入不正确或死循环。







请到「今天看啥」查看全文