快盘下载:好资源、好软件、快快下载吧!

快盘排行|快盘最新

当前位置:首页软件教程电脑软件教程 → 线上误删数据引发的反思

线上误删数据引发的反思

时间:2022-09-18 17:55:37人气:作者:快盘下载我要评论

今天线上环境出现一个数据的误操作问题,说说抽象出来的场景吧:

某个数据清理shell脚本里面包含了形如mysql的连接串:

mysql -uxxx -pxxx -hxxx -Pxxx -D xxx -e "drop table xxxx";

本身这个脚本内容是清理某个特定的实例A的过期数据表的,但是运维同学想要用它清理某个离线的从库实例B的数据,修改连接串信息的时候,修改了账号、密码、端口、数据库以及表信息,漏掉了host信息,恰好有这么一个线上实例,于是就被清理掉了。

其实这个关键就在于要清理的实例,是个离线从库,除了IP地址不一样,其他登录信息和线上实例一模一样,所以极容易发生错误。

数据恢复的同时,我在设想这个场景应该如何避免,我个人认为更多的还是脚本风格上的问题,设想这么2个脚本:

脚本1:

#!/bin/bash

# login_mysql

mysql -uxxx -pxxx -hxxx -Pxxx -D xxx -e "drop table xxxx";

-----------分割线------------------

脚本2:

#!/bin/bash

# conn_info

user=xxx

passwd=xxx

host=xxx

port=xxx

db=xxx

tbl=xxx

# login_mysql

mysql -uuser -ppasswd -hhost -Pport -D db -e "drop table

脚本一可能写着比较快,脚本二相对比较复杂

但是从安全角度来讲,如果你要修改连接信息,脚本一要更容易漏掉其中的某一项(从而导致这个连接信息应用在下一个连接中),而脚本二连接信息在一起写着,不容易漏掉相关的连接信息。

另外,如果在脚本一当中,要更换连接信息,我的习惯做法是先注释掉之前的连接信息,再重新写一个连接串,而不是在原来的连接串上直接修改。这样,也就不容易漏掉其中的某一项了:

#!/bin/bash

# login_mysql

# mysql -uxxx -pxxx -hxxx -Pxxx -D xxx -e "drop table xxxx"; 注释

mysql -uxxx -pxxx -hxxx -Pxxx -D xxx -e "drop table xxxx";

有了这些操作习惯,我觉得可以一定程度上避免误操作。

当时看到这个操作,让我想起了自己当年犯过的一些低级错误:

1、update某个密码,忘了写where 条件,导致全部账号的密码被修改,线上无法访问

反思:这个问题,其实可以在update之前,先select一下,然后修改select关键字为update,再拼写完整语句。

2、脚本中的rm -rf $para/,其中,para参数没有值,导致删除了预发布环境的/目录

反思:这种的低级错误,其实完全可以在执行这个操作的时候,先判断para参数是否为空,为空就不执行这个命令,当时确实年少无知....

其实还有一种办法,就是我们删除文件的时候,最好前面跟上cd xxx && rm -rf xx,这样,就可以把影响范围固定在某个目录里面,再有就是,能mv的目录,先不要rm -rf

3、rm -rf 习惯

反思:其实我不喜欢这个习惯,当你确定你要删除的是一个文件的时候,还是应该使用rm -f xxx,而不是rm -rf xxx

设想这样一个场景:你要删除一个文件aaa.txt,而这个目录中,确实存在aa这个目录,如果你使用了tab补齐,那么出来的先是aa这个目录,你需要双击tab才能出来aaa.txt,那如果第一次补齐的时候,就手快点了回车,那你就只能哭泣了。有的时候,一个小小的习惯,可能会拯救你

诸如此类的经验还有很多,今天没时间写了,改天我总结一篇操作习惯分享分享。

那么,你有哪些好习惯呢?不妨跟我分享一下吧。

相关文章

  • 一步步带你设计MySQL索引数据结构

    一步步带你设计MySQL索引数据结构,想想我们生活中的例子,比如新华字典,我们有一个目录,目录根据拼音排序,内容包含了汉字位于字典中具体的的页码。聪明的你肯定也想到了,我们也可以借鉴这种思想,建立一个MySQL的目录,叫做“索引”。...
  • 影刀连接Mysql数据库

    影刀连接Mysql数据库,影刀配置连接mysql数据库基础版...

网友评论

快盘下载暂未开通留言功能。

关于我们| 广告联络| 联系我们| 网站帮助| 免责声明| 软件发布

Copyright 2019-2029 【快快下载吧】 版权所有 快快下载吧 | 豫ICP备10006759号公安备案:41010502004165

声明: 快快下载吧上的所有软件和资料来源于互联网,仅供学习和研究使用,请测试后自行销毁,如有侵犯你版权的,请来信指出,本站将立即改正。