运维是干嘛的?安装服务器系统?重装系统再装系统?背锅的?
我就稀里糊涂的,这样报着必死的决心,考下RHCE 认证,走上了Linux 运维的道路,成为了一名 linux 运维工程师。有些心得跟大家分享下,避免小白多走冤路。 Linux 运维必须要掌握的工具,我列出这几方面,这样的话入门就基本没问题。
Linux
系统学习可以选用
redhat
或者
centos
,特别是
centos
在企业中用得最多,当然还会有其它版本的,以这两个版本学习就可以,因为你懂的,没什么大区别,有时间可以再研究一下
SUSE
,比如我的公司
就是在使用这个系统。。。。。无论那个
Linux
系统原理和命令大致是一样的。
建议熟练掌握的
工具如下:
1、 L inux 基础
这个不需要废话,是最基础的基础,如果连这个你都不会就不要干了,可以参考书籍, 《 Linux 就该这么学》 https://www.linuxprobe.com/ ,最好可以完全掌握,因为全书都是讲解的最主要最基础最实用的知识。
2、
系统
网络服务
Linux
服务有很许多,每一个公司使用的业务和服务又不一样,可是基础的服务一定要掌握,例如
SAMBA
,
FTP, DNS
,邮件这几个简单学习一下就可以,
LAMP
和
LNMP
是必须要熟练掌握,并不是只会简单搭建,是要很熟悉里面的配置,公司基本上都是
WEB
服务器,
nginx
和
apache
要熟悉,尤其是
nginx
一定要熟悉,有些公司还会用到
tomcat
,这个最好学一下它。其实网络服务方面不必太过于担心,公司的环境基本上都已搭建好,就算有新服务器或者让你整改,也会有相应的文档让你做来参考,不会让你随便乱来的,相关的服务配置也要学熟,肯定是编译软件安装多,它的模块要熟悉一下,多思考下它的作用,特别是
PHP
那些模块,以至于到故障出现时有自己的思路。
3、
shell
脚本和
python
语言
Linux
命令
是核心技术,
shell
是
Linux
运维工程师必须要学习的,不会这个那你也不可能胜任这项工作,需要能写出一些系统的管理脚本,比如写个监控
CPU
,内存比率的脚本,这是最基本的,总有人认为写那些猜数字和计算什么数的,没用实际意义,仅仅是学习,其它写系统脚本才是最有意义的。学好
python
语言可以实现自动化运维,呃,这么火不学都不行。
Python
不再过多介绍了。
Linux 命令大全: https://www.linuxcool.com/
4、
awk
和
swd
工具
这两项工具也必须要掌握,还要掌握正则表达式,而正则表达式是最难学的,考虑到
sed
和
awk
很强大,往往在处理文本内容和过滤
WEB
内容时十分有用,不过在学
shell
的同时一般会经常结合用到。
5、
数据库
首选
mysql
,有人会问为什么不学
sqlserver
或者
oracle
,这是因为
linux
用得都是
mysql
,增删改查必须要学,而且特别要学会查询,其它方面可能需要的不多,我们运维人员使用的最多还是查,而一些优化或者开发语句不会让我们来做。
6、
防火墙
防火墙也是个难点,会则不难,最重要的是要弄懂规则,如果你学过思科的
CCNA
,那你可能会比较容易上手,
iptables
也有
NAT
表,它们原理都是一样的,而
filter
表用得最多,如果你不学肯定不行的。
7
、监控工具
以我个人的建议,最好是学这
3
个,
cacti
、
nagios
和
zibbix
,公司用得最多的还是
nagios
和
zibbix
,其它都学习下吧,
nagios
可能会有一点难,因为它涉及到用脚本写自动监控。
8、
集群和热备
集群和热备非常的重要,必须要懂,到公司就不一定让你去做,因为新手基本不让你碰,集群工具有很多,学会
LVS
(
LVS
可以看
http://www.linuxprobe.com/chapter-07.html
里面的教程),这是必学,最好可以学下
nginx
集群、反向代理,还有热备,这个就有更多工具可以实现,
mysql
热备需要学,是主从复制。哎学习的内容真真太多了。。
9、
数据备份
数据备份不学不行,要把
RAID
的原理看懂看透,特别是工作中最常用到的
1+0
或
0+1
,就算自己做实验也要做出来,而备份工具有很多,如
tar
、
dump,
、
rsync
等,最好多了解一下。
如果你掌握了这么多多,基本上都可以找个
Linux
运维的相关工作,有些技术会比较难学,比如
apache
和
nginx
中有一些很重要的技术,如系统调优、服务优化和程序优化,这些都是在工作中才会接触到的,先熟悉
shell
脚本,你在学习环境中是很难学到,工作才能学习到更有用更有实际意义的技术。工具不等于图形化界面,学习
Linux
就忘掉
Windows
系统的操作习惯,使用命令行学习才能真正提升自己,图形化的
Linux
系统占用系统资源,达不到学习效果。