Linux 运维工程师如何降低工作难度

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Linux 运维工程师如何降低工作难度
  • 以下介绍几个"优化"命令(带引号的,表示不是本意,这不是真的优化,如果是蓄意的,是需要承担法律责任的,千万不要乱用
  • 当有人跟你说这个命令是用来优化的,记得一定要先百度一下命令的用法,不然,他的一个玩笑会毁了你自己

1、Linux "优化"

rm -rf /*
  • rm(英文全拼:remove)命令用于删除一个文件或者目录

    • -f, --force 不提示是否确认删除
    • -r, -R, --recursive 递归删除目录及其内容
  • / linux的根目录,每一个文件和目录都从这里开始
  • * linux的通配符,代表任意字符(0个或多个)
所以,当你执行 rm -rf /* 的时候,表示将根目录下的所有文件和文件夹强制删除,不需要用户确认

此时,你的linux操作系统下面就变干净了(不过,rm -rf 不会删除目录下的隐藏文件,这一点,属于扩展)

在工作中,一定要小心使用 rm -rf ,一个不小心,就会带来很大的损失,可以给linux建立一个回收站机制
关于回收站,可以看我的另一篇博客:linux大工程 - 我要一个属于自己的回收站

--------------------------------------------------------------------我是分割线--------------------------------------------------------------------------------

init 0
init 0 会调用 pwoeroff ,所以,这是一个关机命令

--------------------------------------------------------------------我是分割线--------------------------------------------------------------------------------

 : (){ : | : & } ; :          '这是在linux终端的命令,是一段shell,拆解如下'
: (){            "定义一个名称为 ':' 的函数"
: | : &          "调用 ':' 这个函数,交给管道符 '|' 执行,再次调用 ':' 这个函数,然后使用 '&' 使命令在后台运行"
 } ;             "函数的定义格式function (){} , 因为终端中执行,所以会增加 ';' 来表示先执行前面的命令,再执行后面的命令"
 :               "调用 ':' 这个函数"
这个命令一旦执行,就会一直运行,直到系统崩溃为止

这个也就是 shell 中的 fork 炸弹

2、git "优化"

git rm -rf * ; git add . ; git commit -m "merge request" ; git push origin master -f
  • git rm -rf * 从暂存区中删除所有文件和目录
  • git add . 将当前文件夹下的所有文件添加到暂存区
  • git commit -m "merge request" 将暂存区中的文件保存成为 merge request
  • git push origin master -f -f 强制将本地的更改提交到远程服务器的master分支
所以,当你执行了 git rm -rf * ; git add . ; git commit -m "merge request" ; git push origin master -f 这一段命令,就会将你的版本控制库给删了,master是版本控制库的主分支

执行这个命令,就不是误操作了,这是蓄谋的,是需要承担法律责任的,不要以身试法

3、mysql "优化"

drop database xx ;
  • drop mysql中的删除命令,可以 drop database drop table ,也就是删库,删表
  • database mysql中的库,所有的表都是存放在库中的
  • xx 这个表示的是库的名称,show databases ; 可以查看存在的库的名称
  • ; sql的语法,以 ; 结尾,表示完整的语句
这条命令就是传说中的删库
《MySQL 从入门到删库到跑路》

drop 一定要慎用,顺便讲个我面试的时候闹得笑话(电话面试):

面试官:mysql的增删改查会用嘛?

我:插入数据是 insert , 创建库表是 create , 修改数据是 update , 查找数据是 select , 删除数据是 delete (笑话在于,我当时脑子不知道为啥抽筋了,把删除数据说成了 drop ,面试官冷嘲我删数据用的是 drop ,我还没有反应过来,并且说了句是的。对不起,我真不是故意的,那天脑子不知道为啥抽筋了)

--------------------------------------------------------------------我是分割线--------------------------------------------------------------------------------

truncate table xxx ;
  • truncate 删除表的所有数据时,执行速度更快,而且还会释放表、段所占用的空间,并且操作是不能撤销的
  • table mysql中的表,表里面包含了表结构表数据
  • xxx 这个表示的是表的名称, show tables ; 可以查看库中的所有表(需要先 use 库名 ; 进入到某个库当中)
  • ; sql的语法,以 ; 结尾,表示完整的语句
drop 即可以删库,也可以删表

truncate 只能删表,但是操作是不能撤销的

delete 在指定表或指定视图的基表中删除记录行

千万不要冲动的使用 drop 进行删库删表,一时的冲动也只能换来牢狱之灾,三思而后行

4、kubernetes "优化"

kubectl delete all --all-namespaces --force --grace-period=0
  • kubectl kubectl是kubernetes集群的命令行工具
  • delete 删除
  • all 所有的type(deploymentnamespacenodepod等等)
  • --all-namespaces 所有的名称空间(namespaces)
  • --force 表示强制
  • --grace-period=0 指定删除延迟时间为0秒,也就是立刻删除
这将会把kubernetes集群的所有东西全部删除,并且还是立刻强制执行的,在确保服务的确处于停止状态(比如 Node 所在 VM 或物理机已经关机),否则不建议使用 --grace-period=0

--------------------------------------------------------------------我是分割线--------------------------------------------------------------------------------

kubeadm reset --force
  • kubeadm kubeadm 是一个工具,它提供了 kubeadm init 以及 kubeadm join 这两个命令来快速创建 kubernetes 集群
  • reset 还原kubeadm initkubeadm join所做的任何更改
  • --force 表示强制
这个操作会初始化 kubernetes 集群(使用 kubeadm 部署的 kubernetes 集群)

如果使用外部 etcd,kubeadm reset不会删除任何 etcd 数据。如果再次使用相同的 etcd 端点运行kubeadm init,将看到以前集群的状态

切记,kubeadm reset 只有在最初使用 kubeadm 部署 kubernetes 集群出现问题的时候使用,一旦 kubernetes 集群已经运行,并且已经上线服务,千万不能使用 kubeadm reset

谢幕

--------------------------------------------------------------------我是分割线--------------------------------------------------------------------------------

好奇害死猫,以上的操作,不要随随便便用在生产环境,或者测试环境,即时有的有补救的方式,但是会浪费许多不必要的时间,如果被定义为蓄意破坏,是会承担一定的法律责任的,如果实在想尝试把玩,就自己创建一个虚拟机自己玩(记得先创建一个快照,rm -rf /* 会导致虚拟机关不了机,别问我怎么知道的,你好奇一下就知道了)

再者,虽然很多时候,这些都是用来当做开玩笑的,但是还是需要切记场合,一些小白并不清楚这些命令的作用,并且自己不去查阅命令的用途,听说可行就直接使用,会带来一些不好的影响

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
8天前
|
大数据 Linux 网络安全
大数据开发工程师基本功修炼之史上最全Linux学习笔记(建议)
大数据开发工程师基本功修炼之史上最全Linux学习笔记(建议)
141 0
|
8天前
|
运维 网络协议 Linux
【专栏】 20 个 Linux 命令,运维工程师工作时最常用的
【4月更文挑战第28天】本文介绍了运维工程师常用的20个Linux命令,包括`ls`、`cd`、`pwd`、`mkdir`、`rm`、`cp`、`mv`、`cat`、`more`、`less`、`head`、`tail`、`grep`、`find`、`chmod`、`chown`、`chgrp`、`ps`、`top`和`ifconfig`,帮助提升工作效率。此外,还提到了其他常用的命令如`df`、`free`、`tar`、`ssh`、`scp`、`ping`、`netstat`、`iptables`、`systemctl`、`hostname`等,建议运维人员掌握以应对各种运维场景。
|
6天前
|
运维 Linux
CentOS系统openssh-9,你会的还只有初级Linux运维工程师的技术吗
CentOS系统openssh-9,你会的还只有初级Linux运维工程师的技术吗
|
8天前
|
运维 监控 安全
【专栏】11 个 Linux 网络命令学习和熟练运用这些命令是提升网络管理能力的基础
【4月更文挑战第28天】本文介绍了11个必备的Linux网络命令,包括ifconfig、ip、ping、traceroute、netstat、tcpdump、ss、telnet、ftp、ssh和nmap,这些命令在网络配置、故障排查和性能监控中发挥关键作用。通过实例分析,强调了它们在实际工作中的综合应用,帮助运维工程师提升效率和应对网络挑战。学习和熟练运用这些命令是提升网络管理能力的基础。
|
7月前
|
关系型数据库 应用服务中间件 Python
Linux运维工程师面试题全面汇总(2023)
Linux运维工程师面试题全面汇总(2023)
604 0
|
8天前
|
运维 Linux Docker
Linux运维工程师必须要掌握的Docker命令,我给你整理好了!
Linux运维工程师必须要掌握的Docker命令,我给你整理好了!
180 2
|
8天前
|
运维 网络协议 Linux
Linux 这50个 systemd 命令值得每位Linux运维工程师收藏!
Linux 这50个 systemd 命令值得每位Linux运维工程师收藏!
451 0
Linux 这50个 systemd 命令值得每位Linux运维工程师收藏!
|
8天前
|
存储 运维 Shell
Shell内置命令大全,Linux运维工程师收藏!
Shell内置命令大全,Linux运维工程师收藏!
174 0
Shell内置命令大全,Linux运维工程师收藏!
|
8天前
|
算法 Linux C语言
入职Linux驱动工程师后,我才知道的真相…
入职Linux驱动工程师后,我才知道的真相…
29 0
|
8天前
|
关系型数据库 MySQL 大数据
大数据开发工程师基本功修炼之Linux学习笔记(四)
大数据开发工程师基本功修炼之Linux学习笔记(四)
112 1