10条Linux命令锦囊,防你牢底坐穿
http://xjjdog.cn 对200+原创文章进行了细致的分类,阅读更流畅,欢迎收藏。
原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。任何不保留此声明的转载都是抄袭。
每一年,都会有删库跑路的新闻。现实中,删库容易,跑路难,从业者充满了泪水。
这些动作里面,并不总是存在主观的恶意,而是这些命令太危险了。线上操作时,一定要保持清醒的头脑,切记马虎大意。
你说你误操作的,谁信呢?
切记:
严禁酒后登录线上服务器操作
严禁吵架后情绪激动登录线上服务器操作
严禁长时间加班后操作线上环境
禁止在线上试验不熟悉的命令
重要系统先做备份
1. 准备工作
在执行危险命令时,请深呼吸。首先执行ifconfig
,或者ip addr
命令,确认是在正确的服务器上。
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:16:3e:34:e9:a9 brd ff:ff:ff:ff:ff:ffinet 172.19.26.39/20 brd 172.19.31.255 scope global dynamic noprefixroute eth0valid_lft 313267185sec preferred_lft 313267185secinet6 fe80::216:3eff:fe34:e9a9/64 scope linkvalid_lft forever preferred_lft forever
这时候,再次深呼吸,然后执行pwd
命令,确保自己是在正确的目录下面。
$ pwd
/etc/nginx
接下来,就可以看一下执行的命令,是不是危险指令。
2. rm -rf命令
-rf
参数将递归删除文件,误删文件导致数据丢失,产生严重后果。如果多一个空格,或者 /
没有补齐,或者文件有特殊符号,导致误删文件的误操作居多。
rm -rf ./* => rm -rf /
rm -rf abc/ => rm -rf abc /
执行rm命令,手速一定要慢。按<tab>补全,一定要等屏幕回显后操作。
另外,在脚本中,rm的坑也不小,比如:
rm -rf ${p}/*
如果p变量没有设置,就会是灾难性的后果,命令等同于rm -rf /
。所以rm还有另外一条谨言:在脚本中执行rm的时候,请先判断相关的变量是否为空。
3. chmod命令
chmod是更改目录和文件权限用的,如果处理不当,会产生和rm一样的后果。
这里介绍一种非常霸道的恢复方法。在执行这个命令之前,先把所有文件的权限备份一下。这里用到getfacl
这个命令。
getfacl -R / > chmod.txt
恢复的时候,执行
setfacl --restore=chmod.txt
它将回放这个文件的权限,有时候是救命的。
4. cat命令
cat命令也能出错?是的,而且还很严重,因为你掌握了高级技能:重定向符。
如果你想要向文件中追加
内容,会使用 cat >> file
的方式,如果你不小心少输入了一个>
,那么不好意思,你的文件内容就丢失了。
类似的命令还有echo
等,可以看到,问题不在cat,在重定向符,太容易写错。
在此,请你操作之前,确保每次深呼吸,数好箭头的个数再操作。
5. dd命令
dd
命令很酷,和xjjdog
的jj
遥相呼应。命令如下:
dd if=/dev/zero of=/dev/sda bs=512 count=1
以上命令,用于格式化硬盘,如果你的剪贴板里面有这样的命令,而且不小心粘到了命令行里,你的数据将会蒸发。
6. cp命令
cp命令会产生覆盖,如果你后悔了,想找到原文件,将非常困难。
建议增加alias cp ='cp -i'
,i参数表示会在拷贝时生成一个备份。大多数时候没用,有时候很有用。
和我们买保险一个道理。
mv命令类似,也可以加上-i。
7. tar命令
不要觉得tar很安全,我就曾经因为tar命令丢失过数据。
第一,tar -xf 解压的时候, 如果解压的文件已经在当前目录,覆盖原有的文件夹及文件。覆盖
这两个字,很多时候意味着不安全。
8. vim命令
vim容易在打开大文件的时候,造成系统内存占用过高。如果触发了操作系统的oom-killer
,将会造成其他正常进程的死亡。
如果你手速过快,执行了:wq
,将会造成文件的不一致甚至损坏。
可是使用less
或者more
这样的命令,来查看信息。更高效,也更安全。
如果你实在不得不用vim,请保持使用view
命令,它是vim的只读模式。
9. mkfs.*
类似于mkfs.ext4这种指令,将会格式化硬盘,一般用于线上环境初始化,否则不要执行。
10. MySQL
(1)使用mysql -U
--safe-updates, --i-am-a-dummy, -U
使用mysql -U
防止delete
、update
执行没带where条件的操作。当发出没有WHERE或LIMIT关键字的UPDATE或DELETE时,mysql程序拒绝执行。
alias同样是我们的好帮手,可以这么设置:
alias mysql='mysql -U'
(2)重要操作时,使用事务
start transaction
执行
确认
commit
(3)DML误操作回滚,可以使用binlog2sql
(4)小心DDL操作
DDL往往意味着巨大的坑,锁表、误删、数据转变,往往是灾难性的。DDL 对整个表进行操作,或者是整个表所有的行、列,产生exclusive锁,产生疯狂io、严重影响生产。
这里面的任何一条,都是要命的。
仔细检查DDL,尽量在业务低峰执行,而且尽量采用inplace
方式操作。
End
线上值万金,执行需谨慎。小心驶得万年船,在危险的线上环境,做事追求的不是快,而是稳。
毕竟,成熟的公司,光审批阶段就耗了好几天,你又为啥这么在乎这几秒钟呢?
作者简介:小姐姐味道 (xjjdog),一个不允许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。我的个人微信xjjdog0,欢迎添加好友,进一步交流。
推荐阅读:
一图解千愁,jvm内存从来没有这么简单过!
失联的架构师,只留下一段脚本
架构师写的BUG,非比寻常
nginx工程师,需要上承天命,下召九幽
实力解剖一枚挖矿脚本,风骚操作亮瞎双眼
又一P1故障,锅比脸圆
传统企业的人才们,先别忙着跳“互联网”!
面试官很牛,逼我尿遁
又一批长事务,P0故障谁来背锅?
一天有24个小时?别开玩笑了!
《程序人生》杀机!
可怕的“浏览器指纹”,让你在互联网上,无处可藏
2w字长文,让你瞬间拥有「调用链」开发经验
996的乐趣,你是无法想象的
作为高级Java,你应该了解的Linux知识(非广告)
必看!java后端,亮剑诛仙(最全知识点)
学完这100多技术,能当架构师么?(非广告)
Linux上,最常用的一批命令解析(10年精选)
数百篇「原创」文章,助你完成技术「体系化」
▼
10条Linux命令锦囊,防你牢底坐穿相关推荐
- 这 10条 Linux 命令锦囊,防你牢底坐穿
每一年,都会有删库跑路的新闻.现实中,删库容易,跑路难,从业者充满了泪水. 这些动作里面,并不总是存在主观的恶意,而是这些命令太危险了.线上操作时,一定要保持清醒的头脑,切记马虎大意. 你说你误操作的 ...
- Linux学习总结(9)——Linux 新手必知必会的 10 条 Linux 基本命令
Linux 对我们的生活产生了巨大的冲击.至少你的安卓手机使用的就是 Linux 核心.尽管如此,在第一次开始使用 Linux 时你还是会感到难以下手.因为在 Linux 中,通常需要使用终端命令来取 ...
- 日常必备的16条Linux命令
公众号:尤而小屋 作者:Peter 编辑:Peter 今天带来的一篇文章是关于Linux命令. 工作之后第一次接触到了Linux系统,起初是Centos系统,后来慢慢地变成了Ubuntu.最后因为换电 ...
- centos7修改ip地址命令_每天一条Linux命令(12) hostnam (超详细)
在Linux系统中,命令 hostname 用于显示或者设置系统主机名称.许多网络程序均用主机名来标识主机,若没有设置好主机名,则可能会导致网络服务不正常. 语法: hostname [选择] 参数: ...
- linux 的vi命令中将当前文件另存为新文件a.log,【转】20条Linux命令面试问答
问:1 如何查看当前的Linux服务器的运行级别? 答: 'who -r' 和 'runlevel' 命令可以用来查看当前的Linux服务器的运行级别. 问:2 如何查看Linux的默认网关? 答: ...
- Linux 新手必知必会的 10 条 Linux 基本命令
Linux 对我们的生活产生了巨大的冲击.至少你的安卓手机使用的就是 Linux 核心.尽管如此,在第一次开始使用 Linux 时你还是会感到难以下手.因为在 Linux 中,通常需要使用终端命令来取 ...
- 20条Linux命令面试问答
问:1 如何查看当前的Linux服务器的运行级别? 答: 'who -r' 和 'runlevel' 命令可以用来查看当前的Linux服务器的运行级别. 问:2 如何查看Linux的默认网关? 答: ...
- 抓包分析,一条Linux命令实现路由器自动登录深大校园网认证(Drcom Pt版)
先说结论,通过抓包分析简化最后可以得出,其登录过程只是一个简单的向服务器发送HTTP GET请求或HTTP POST请求.只要在路由器启动之后自动发送一段 HTTP 请求,即可实现自动登录. 对于 G ...
- 20条Linux命令笔试常见问答
问:1 如何查看当前的Linux服务器的运行级别? 答: 'who -r' 和 'runlevel' 命令可以用来查看当前的Linux服务器的运行级别. 问:2 如何查看Linux的默认网关? 答: ...
最新文章
- 显卡安装一直循环在登录界面——解决之-T450安装显卡驱动和cuda7.5发现的一些问题...
- tomcat更改端口
- VTK:投影点用法实战
- Linux RedHat下安装eclipse-standard-kepler-SR1-linux-gtk.tar.gz
- flume + kafka
- oracle 合并函数
- c 输出空格_C/C++知识分享:C++常用内置函数你会几个,使用过几次呢?
- Windows 编程[11] - WM_SIZE 消息
- 科普:SDN(软件定义网络)
- Jquery-无法有效获取当前窗口高度
- 追赶法 c++代码实现
- word 论文排版相关
- 大数据图解美英法空袭叙利亚,都动用了哪些装备?
- Latex改变图片、表格标题字号
- M365 比较 WLB?而 Bing 加班很猛?我也吃了一鲸!
- iPhone 12手机真实信号强度查看方法教程
- c++用贪心算法解决汽车加油问题
- 荣耀破壁2022:蜕变的解法、蓄势的护法、进击的打法
- ida符号文件路径设置
- Vue css最高优先级