我最近有过编写
shell脚本的经验,它通过消耗所有资源来破坏服务器(并破坏了分区).它被连接到一个cron作业,似乎它需要比执行之间的间隔更长的时间,随着时间的推移滚雪球失控.
现在,我已修改它以记录其运行状态,并且不会同时运行多次.我的问题是:是否有其他简单的方法来保护脚本免受伤害?是否存在脚本应该正常运行的事物的标准列表,不消耗太多资源,优雅地失败,警告合适的人等等?
基本上:我应该避免哪些其他陷阱?
计算机完全按照他们的要求行事.确保脚本“行为正常”的唯一方法是在所有情况下编写脚本以使其正常运行.
一些基本建议:
>实施某种监控系统.你的系统爆炸而你不知道它即将爆炸的事实告诉我你要么没有监控系统,要么你当前的系统不够好.投入一些时间确保服务器在崩溃之前告诉您存在问题.>在从cron运行的脚本中包含适当的安全措施.你的脚本踩到了自己的尾巴.这不应该发生.你已经学会了需要防范这种事情的困难方法(如果发生这种情况,让系统通知你).>更彻底地设计和测试.仔细评估您要部署的每个脚本,以确保它不会产生不良副作用.如果你可以想象一个失败场景,那就测试它(并正确处理它!).花时间模拟故障(通过在脚本中将条件硬编码为true,或者通过生成环境来测试检测逻辑).