1、对Linux下各种网络服务、应用系统、监控系统等进行自动化脚本开发的工作,并根据项目对系统进行性能优化;
2、负责网站项目中Linux服务器的部署与维护,解决Linux系统下版本兼容性问题;
3、熟练部署和维护Linux服务器以及在linux服务器上架设各种服务;
4、编写shell script脚本;
5、LAMP,LNMP以及Mysql,oracle数据库维护1、systemd查看日志文件有隐藏该如何处理?
systemd统一管理所有Unit的启动日志,包含内核日志和应用日志。在默认情况下,systemd日志保存于/run/log/journal中,系统重启后会清除,这里面的日志文件是二进制形式保存的,不能直接用less等文本文件查看的方式查看内容。
可以使用下面这个命令来查看日志内容,由于一行可以显示很多内容,屏幕的列数可能无法显示完整,可以使用右方向键查看右边的内容。
$ journalctl
日志文件还有更详细的信息,使用下面这个参数 显示隐藏字段
journalctl -o verbose
-o 或 --output=STRING 来改变journal命令输出的模式。
2、自己动手写一个systemd的配置文件, 让nginx服务可以开机启动
[root@localhost ~]# cd /etc/systemd/system
[root@localhost system]# vi nginxservice
[Unit]
Description=nginx - high performance web server
Documentation=>
1、Linux系统基础
严格的来讲,Linux 不算是一个 *** 作系统,只是一个 Linux 系统中的内核,即计算机软件与硬件通讯之间的平台;Linux的全称是GNU/Linux,这才算是一个真正意义上的Linux系统。GNU是Richard Stallman组织的一个项目,世界各地的程序员可以变形GNU程序,同时遵循GPL协议,允许任何人任意改动。但是,修改后的程序必须遵循GPL协议。
Linux 是一个多用户多任务的 *** 作系统,也是一款自由软件,完全兼容POSIX标准,拥有良好的用户界面,支持多种处理器架构,移植方便。
为程序分配系统资源,处理计算机内部细节的软件叫做 *** 作系统或者内核。如果你希望详细了解 *** 作系统的概念,请查看 *** 作系统教程。
用户通过Shell与Linux内核交互。Shell是一个命令行解释工具(是一个软件),它将用户输入的命令转换为内核能够理解的语言(命令)。
2、网络服务
服务有很多种,每间公司都会用到不同的,但基础的服务肯定要掌握,如FTP, DNS,SAMBA, 邮件, 这几个大概学一下就行。
其实网络服务方面不用太担心,一般公司的环境都已经搭建好,就算有新服务器或让你整改,公司会有相应的文档让你参照来弄,不会让你乱来的,但至少相关的配置一定要学熟,而且肯定是编译安装多,那些模块要熟悉一下他的作用,特别是PHP那些模块。
这面2点只是基础,也是必要条件,不能说是工具,下以才是真正的要掌握的工具。
3、shell脚本和另一个脚本语言
shell是运维人员必须具备的,不懂这个连入职都不行,至少也要写出一些系统管理脚本,最简单也得写个监控CPU,内存比率的脚本吧,这是最最最基本了。别以为会写那些猜数字和计算什么数的,这些没什么作用,只作学习意义,写系统脚本才是最有意义。
Shell是系统的用户界面,提供了用户与内核进行交互 *** 作的一种接口。它接收用户输入的命令并把它送入内核去执行 。
实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。
Linux提供了像MicrosoftWindows那样的可视的命令输入界面--X Window的图形用户界面(GUI)。它提供了很多桌面环境系统,其 *** 作就像Windows一样,有窗口、图标和菜单,所有的管理都是通过鼠标控制。GNOME。
每个Linux系统的用户可以拥有他自己的用户界面或Shell,用以满足他们自己专门的Shell需要。
同Linux本身一样,Shell也有多种不同的版本。主要有下列版本的Shell:
Bourne Shell:是贝尔实验室开发的。
BASH:是GNU的Bourne Again Shell,是GNU *** 作系统上默认的shell。
Korn Shell:是对Bourne SHell的发展,在大部分内容上与Bourne Shell兼容。
C Shell:是SUN公司Shell的BSD版本。
Z Shell:The last shell you’ll ever need! Z是最后一个字母,也就是终极Shell。它集成了bash、ksh的重要特性,同时又增加了自己独有的特性。
而另一个脚本语言是可选的,一般是3P,即Python,Perl和PHP,PHP就不需要考虑了,除非你要做开发,我个人建议学Python会比较好,不难实现自动化运维,Perl是文本处理很强大,反正这两个学一个就行了。
4、sed和awk工具
必须要掌握,在掌握这两个工具同时,还要掌握正则表达式,这个就痛苦了,正则是最难学的表达式,但结合到sed和awk中会很强大,在处理文本内容和过滤WEB内容时十分有用,不过在学shell的同时一般会经常结合用到的,所以学第3点就会顺便学第4点。
5、文本处理命令
sort , tr , cut, paste, uniq, tee等,必学,也是结合第3点时一并学习的。
6、数据库
首选MySQL,别问我为什么不学SQL Server和Oracle,因为Linux用得最多绝对是MySQL。增删改查必学,特别要学熟查,其它方面可能不太需要,因为运维人员使用最多还是查,哪些优化和开发语句不会让你弄的。
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。
7、防火墙
不学不行,防火墙也算是个难点,说难不难,说易不易,最重要弄懂规则。如果学过CCNA的朋友可能会比较好学,因为iptables也有NAT表,原理是一样的,而Filter表用得最多,反正不学就肯定不合格。
8、监控工具
十分十分重要,我个人建议,最好学这3个,cacti,nagios,zabbix。企业用得最多应该是nagios和 zabbix,反正都学吧,但nagios会有点难,因为会涉及到用脚本写自动监控,那个地方很难。
Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
Zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。
Cacti是通过 snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。界面友好。软件 Cacti 的发展是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。
9、集群和热备
这个很重要,肯定要懂的,但到了公司就不会让你去弄,因为新手基本不让你碰。集群工具有很多,最好学是LVS,这是必学,最好也学学nginx集群,反向代理。还有热备,这个就更多工具能实现了,像我公司是自己开发热备工具的,MySQL热备也要学,就是主从复制,这个别告诉我容易,其实不容易的,要学懂整个流程一点也不容易,只照着做根本没意思。
10、数据备份
不学不行,工具有很多,但至少要把RAID的原理弄懂,特别是企业最常用的1+0或0+1,自己做实验也要弄出来,备份工具有很多,如tar, dump, rsync等,最好多了解一下。
我很明白你的想法,你想要那种轻松愉快,一看就会,一见就懂的记忆方式。但是,我要告诉你,真没有。只有平时多接触。多实践。linux和windows有个不同。windows的图形界面是结合到了内核之中的。想把windows的图形界面给完全剔出,用命令行来 *** 作。那难度不是一般的大。而linux,图形界面是非必须的。有些版本,像ubuntu,Fedora还有红帽,centos的桌面版 有可能是默认就安装桌面环境,给出图形界面以外,像红帽的server版,等等,默认都不装桌面,也就是没有图形环境。这意味着,如果你遇到的服务器版的,而原先安装系统的又不是你本人,那你就有可能碰上一个没有桌面环境,只能命令 *** 作的linux。很多人,实际上,对电脑的接受理解水平并不像他们自己以为的那样。他们之所以觉得电脑难懂,觉得没了图形化环境就学不会,记不住实际上是一种消极负面的暗示。一遍遍的暗示自己:我是菜鸟,我是新人,我不是科班出身,我不是专业人士。所以,我一定学不会。一旦遇到困难,立刻就觉得自己不行。就是这种思路,拉了后腿。所以,要想学好用好linux。就要把那些扯后腿的东西给尽快地清理掉。不要一遇到问题,马上觉得自己怎么怎么的不行。此外还有一点,虽然是个新手,但是在学习,记忆,理解过程中,有时也能看懂一些文档,作对一些事情,这时候千万别太贬低自己,别老是觉得那是偶然的。谦虚是谦虚,但是谦虚要有个度。一个人不论做什么,如果总是认为自己的进步,成长是偶然的,是别人怕自己面子过不去而给予的施舍,照顾;同时又把自己遇到的挫折困难当作必然,觉得自己就应该不懂,应该不会,应该受人鄙视。那这个人很难有什么成就。这种消极的东西将像一个巨大的石头,拴在这个人的脚上。让他每前进一步都要付出更大的代价。这一点,对各行各业都是如此,也包括使用linux的人士。
有人说,他自己就是那种一看到图形界面就觉得轻松,易学,易懂,易用。一看到命令就皱眉头,觉得困难,难学,难懂,难用的人,这怎么办?没有别的办法,只有把前面说的那种消极负面的暗示尽快地尽可能彻底的消除掉。怎么消除,只能靠自己努力这个任何人替代不了。1、概述
显示当前谁在登录中
2、命令格式
who [OPTION] [ FILE | ARG1 ARG2 ]
3、常用命令参数
打印当前正在登录用户的信息
[javascript] view plain copy
[zhang@zhang ~]$ who
root tty1 2015-12-20 09:12
oldboy pts/0 2015-12-20 09:13 (19216807)
oldboy pts/1 2015-12-20 09:13 (19216807)
oldboy pts/2 2015-12-20 09:13 (19216807)
-a, --all 等同于 -b -d --login -p -r -t -T -u
[javascript] view plain copy
[oldboy@zhang ~]$ who -a
system boot 2015-12-20 09:10
run-level 3 2015-12-20 09:10
root + tty1 2015-12-20 09:12 00:40 1201
LOGIN tty2 2015-12-20 09:10 1203 id=2
LOGIN tty3 2015-12-20 09:10 1205 id=3
推荐几本学习Linux的书籍供参考:
一、《快乐的Linux命令行》
这本书介绍如何生存在 Linux 命令行的世界。不像一些书籍仅仅涉及一个程序,比如像shell 程序, bash。这本书将试着向你传授如何与命令行界面友好相处。它是怎样工作的?它能做什么?使用它的最好方法是什么?
正如书中所说的“就像有位老师在你身边,指导你学习”,这本书的特点是语言简洁流畅,即使是英文版,看起来也不费劲(目前已有中文版)。涵盖了大部分命令行工具和Shell编程。最主要的是它基于 CC 协议共享,任何人都可以免费下载。
二、《Linux命令行与shell脚本编程大全》
这是一本非常适合Linux小白的入门教程,内容通俗易懂、深入浅出,除了日常工作中用的基础命令之外,像正则表达式、sed、awk 这样的高级命令也有介绍,书上还配有大量的实例,如果你想精通 shell 编程,那么这本书就是为你准备的。也是有志于从事系统运维开发的朋友必备读品,总之,只要你能跟着这本教程学完,使用 Linux 就轻车熟路了。
三、鸟哥的Linux私房菜 : 基础学习篇
如果你想要学习Linux,强烈建议通过《鸟哥的Linux私房菜》这套书籍去学习,浅显易懂,小编就是通过这套书籍学会Linux的。
四、Linux UNIX系统编程手册 套装上下册
《linux/unix系统编程手册(上、下册)》是介绍linux与unix编程接口的权威著作。linux编程资深专家michael kerrisk在书中详细描述了linux/unix系统编程所涉及的系统调用和库函数,并辅之以全面而清晰的代码示例。
《linux/unix系统编程手册(上、下册)》涵盖了逾500个系统调用及库函数,并给出逾200个程序示例,另含88张表格和115幅示意图。
学成之后从事的工作也是围绕运维进行的:
应用运维(SRE):应用运维负责线上服务的变更、服务状态监控、服务容灾和数据备份等工作,对服务进行例行排查、故障应急处理等工作,工作职责如下:设计评审、服务管理、资源管理、例行检查、预案管理、数据备份。
系统运维(SYS):负责IDC、网络、CDN和基础服务的建设(LVS、NTP、DNS);负责资产管理,服务器选型、交付和维修,工作职责如下:IDC数据中心建设、网络建设、LVS负载均衡和SNAT建设、CDN规划和建设、服务器选型、交付和维护、内核选型和OS相关维护工作、资产管理、基础服务建设。
数据库运维(DBA):数据库运维负责数据存储方案设计、数据库表设计、索引设计和SQL优化,对数据库进行变更、监控、备份、高可用设计等工作,详细的工作内容如下:设计评审、容量规划、数据备份与灾备、数据库监控、数据库安全、数据库高可用和性能优化、自动化系统建设、运维研发、运维平台、监控系统、自动化部署系统。
运维安全(SEC):运维安全负责网络、系统和业务等方面的安全加固工作,进行常规的安全扫描、渗透测试,进行安全工具和系统研发以及安全事件应急处理,工作内容如下:安全制度建立、风险评估、安全建设、安全合规、应急响应。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)