今儿个跟大伙儿唠唠我踩过的那些脚本坑,血泪教训!昨儿个整理硬盘,翻出来一堆写废的脚本,脸都臊红了。干脆给你们当个反面教材,省得重蹈覆辙。
一上来就瞎折腾路径
记得刚写脚本那会儿,蠢得挂相。头一个坑就是路径瞎写。有回写个自动备份的脚本,想着简单,直接在脚本里写死路径:C:\重要文件\绝密资料。跑起来还挺顺,美滋滋发给同事用。结果你猜咋着?人电脑压根没C盘!那哥们用的是Mac!脚本当场撂挑子,给我俩都整懵了。打那以后学乖了,路径?要么让用户自己填,要么用相对路径。比如改成“./backup/”,让脚本自己找当前位置,再也不当路径二极管了。
手贱忘了权限检查
还有个坑栽得贼疼——没检查权限就硬来。有次写删除临时文件的脚本,偷懒没加权限验证。脚本在公司服务器跑得欢实,我也没多想。结果有天手贱,在自己电脑上测试,好家伙,脚本哐哐把我桌面全删干净了!当时冷汗唰地下来了,桌面堆着没保存的方案!用恢复软件扒拉回来大半,心脏差点罢工。现在每回操作文件前,必加这几句救命符:
- 先问:这文件我能碰吗?
- 再问:这地方让写东西吗?
- 哆嗦着问:真要删?要不咱先备个份?
死循环坑得同事想捶我
最丢人的是去年搞日志清理脚本。循环变量写岔了,生生搞出个死循环。本来想只清理30天前的旧日志,结果条件写成 "while 文件存在" 就删。好死不死那天日志系统抽风,刚删完立马又生成新文件。脚本跟打了鸡血似的,咔咔狂删刚冒头的日志,硬盘灯闪得跟迪厅球灯一样!数据库直接崩了,全部门盯着502错误页干瞪眼。运维老哥冲过来拍桌子吼:“哪个龟孙儿的脚本在吃日志?!” 我缩在工位愣是没敢吭声...打那以后,循环条件起码检查三遍,塞个超时机制才算完。
啰嗦两句
踩完这些坑才琢磨明白,脚本这玩意儿看着简单,实际跟走钢丝似的。现在每次写完必干三件事:
- 开虚拟机跑两轮 —— 管它出错还是爆炸,炸不到真家伙;
- 关键操作前加确认提示 —— 弹出个“您老人家确定要搞死这个文件?”能救命;
- 日志写到能追溯祖宗十八代 —— 把脚本每天干啥、出啥错都记黑账,秋后算账心里不慌。
前阵子回老东家做技术分享,进门就看见运维小哥冲我乐:“听说你现在写脚本终于不删库?” 我反手掏出新写的《防删库自查手册》拍他桌上。踩坑丢人不丢人?丢死了!但没摔死爬起来,都是硬邦邦的经验包!