Linux运维工程师工作手册

合集下载

Linux运维工程师工作手册

Linux运维工程师工作手册

Linux运维工程师工作手册释放内存:syncecho3>/proc/sys/vm/drop_cachesLinux查看Dell服务器型号命令:dmidecode|grep"ProductName"查看系统负载:cat/proc/loadavg1/意思是:前三个是系统负载,1/283中,1代表此时运行队伍中的进程个数,而283是代表此时的进程总数10904到此为止,最后创建的一个进程ID;系统装好后,要做的事如下:关闭防火墙Selinux:vim/etc/selinux/config把SELINUX=enforcing改成SELINUX=disabled更改主机名:vim/etc/sysconfig/network修改主机名,不要用localhost添加hosts主机记录vim/etc/hosts中,在后面,添加自己的主机名创建0-9a-z目录foriin`seq09`{a..z};domkdir-p$i;done:测试硬盘性能工具:iozone监视服务器每少上下文切换数次工具:Nmon很不错的性能监视工具占用内存大小前10的进程ps-eocomm,size--sort-size|head-10占用cp u使用前10的进程ps-eocomm,pcpu--sort-pcpu|head-10一、Apache服务优化:21.配置cronolog进行日志轮询22.错误页面优雅显示2文件压缩功能3缓存功能45.更改apache的默认用户5模式,提升并发数可以达到2000-500057.屏蔽apache版本等敏感信息6目录文件权限设置root,目录755,文件6446 9.开启增加连接数6防盗链功能811.禁止目录Index812.禁止用户覆盖重载813.关闭CGI914.避免使用.htaccess文件分布式配置文件9 的安全模块916.正确途径取得源代码,勤打apache补丁10 日志授予root700权限1018.系统内核参数优化1019.禁止PHP解析指定站点的目录1020.使用tmpfs文件系统替代频繁访问的目录11 21尽可能减少HTTP请求数1122使用CDN做网站加速12查看你的服务器网络连接状态netstat-n|awk'/^tcp/{++S$NF}END{forainSprinta,Sa}'◆CLOSED:无连接是活动的或正在进行◆LISTEN:服务器在等待进入呼叫◆SYN_RECV:一个连接请求已经到达,等待确认◆SYN_SENT:应用已经开始,打开一个连接◆ESTABLISHED:正常数据传输状态◆FIN_WAIT1:应用说它已经完成◆FIN_WAIT2:另一边已同意释放◆ITMED_WAIT:等待所有分组死掉◆CLOSING:两边同时尝试关闭◆TIME_WAIT:另一边已初始化一个释放◆LAST_ACK:等待所有分组死掉ESTABLISHED的值其实也是当前的并发数,这个可重点关注下;另外,可关注下TIME——WAIT这项的数值;Linux下高并发的Squid服务器,TCPTIME_WAIT套接字数量经常达到两、三万,服务器很容易被拖死;通过修改Linux内核参数,可以减少Squid服务器的TIME_WAIT套接字数量;查看系统本地可用端口极限值cat/proc/sys/net/ipv4/ip_local_port_range寻找恶意IP并用iptables禁止掉netstat-an|grep:80|grep-v|awk'{print$5}'|sort|awk-F:'{print$1,$4}'|uniq-c|awk'$1>50{print$1,$2}'备份单个数据库mysqldump-u用户–p’密码’--default-character-set=latin1数据库名>备份文件名数据库默认编码是latin1普通备份:mysqldump-uroot-p'oldboy123'oldboy>/server/bak/压缩备份:mysqldump-uroot-p'oldboy123'oldboy|gzip>/server/bak/设置字符集备份:mysqldump-uroot-p'oldboy123'oldboy--default-character-set=gbk|gzip>/server/bak/执行结果:rootoldboy~mkdir/server/bak-prootoldboy~mysqldump-uroot-p'oldboy123'oldboy>/server/babackup/bak/rootoldboy~mysqldump-uroot-p'oldboy123'oldboy>/server/bak/rootoldboy~mysqldump-uroot-p'oldboy123'oldboy|gzip>/server/bak/rootoldboy~ls-l/server/bak/total8-rw-r--r--1rootroot1991Apr900:51-rw-r--r--1rootroot801Apr900:51mysqldump在做啥mysqldump实际上就是把数据从mysql库里以逻辑的sql语句的形式导出;备份的数据过滤掉注释:rootoldboy~egrep-v"\|--|^$"/server/bak/DROPTABLEIFEXISTS`test`;CREATETABLE`test``id`int4NOTNULLAUTO_INCREMENT,`name`char20NOTNULL,PRIMARYKEY`id`ENGINE=MyISAMAUTO_INCREMENT=12DEFAULTCHARSET=gbk;LOCKTABLES`test`WRITE;INSERTINTO`test`VALUES1,'zhaoyue',2,'jesse',4,'elain',5,'wodi',6,'yingsui',7,' zhangyang',8,'zaixiangpan',9,'',10,'钥佺敺瀛,11,'鎴;<==这里是乱码,是因为导出时的格式没加字符集,而系统当前字符集又是格式,一般恢复到数据库里会正常,只是系统外查看不正常而已;另外insert是批量插入的方式,这样在恢复时效率很高;UNLOCKTABLES;提示:看到了吧,就是我们曾经插入的表和数据;rootoldboy~mysqldump-uroot-p'oldboy123'oldboy--default-character-set=gbk>/server/bak/rootoldboy~egrep-v"\|--|^$"/server/bak/DROPTABLEIFEXISTS`test`;CREATETABLE`test``id`int4NOTNULLAUTO_INCREMENT,`name`char20NOTNULL,PRIMARYKEY`id`ENGINE=MyISAMAUTO_INCREMENT=12DEFAULTCHARSET=gbk;LOCKTABLES`test`WRITE;INSERTINTO`test`VALUES1,'zhaoyue',2,'jesse',4,'elain',5,'wodi',6,'yingsui',7,' zhangyang',8,'zaixiangpan',9,'',10,'老男孩',11,'我';<==;其他乱码是当初插入时就有问题的;UNLOCKTABLES;备份多个库rootoldboy~mysqldump-uroot-p'oldboy123'-Boldboymysql--default-character-set=gbk>/server/bak/提示:-B参数是关键,表示接多个库;※※※※※生产环境常用-B,;regardedasdatabasenames.'USEdb_name;'willbeincludedintheoutput.参数说明:该参数用于导出若干个数据库,在备份结果中会加入USEdb_name和CREATEDATABASE`db_name`;-B后的参数都将被作为数据库名;该参数比较常用;当-B后的数据库列全时同-A参数;请看-A的说明;备份单个表mysqldump-u用户名-p数据库名表名>备份的文件名mysqldump-uroot-poldboytest>执行结果:rootoldboy~mysqldump-uroot-p'oldboy123'oldboytest--default-character-set=gbk>/server/bak/提示:无-B参数,库oldboy后面就是test表了;备份多个表rootoldboy~mysqldump-uroot-p'oldboy123'oldboytestett--default-character-set=gbk>/server/bak/rootoldboy~egrep-v"\|--|^$"/server/bak/DROPTABLEIFEXISTS`test`;CREATETABLE`test``id`int4NOTNULLAUTO_INCREMENT,`name`char20NOTNULL,PRIMARYKEY`id`ENGINE=MyISAMAUTO_INCREMENT=12DEFAULTCHARSET=gbk;LOCKTABLES`test`WRITE;INSERTINTO`test`VALUES1,'zhaoyue',2,'jesse',4,'elain',5,'wodi',6,'yingsui',7,' zhangyang',8,'zaixiangpan',9,'',10,'老男孩',11,'我';UNLOCKTABLES;DROPTABLEIFEXISTS`ett`;CREATETABLE`ett``id`int11DEFAULTNULLENGINE=MyISAMDEFAULTCHARSET=gbk;LOCKTABLES`ett`WRITE;UNLOCKTABLES;备份数据库结构不包含数据mysqldump-uroot-d-p'oldboy'oldboyoldboy>-d只备份表结构rootoldboy~mysqldump-uroot-p'oldboy123'-doldboy>/tmp/rootoldboy~egrep-v"\|--|^$"/tmp/DROPTABLEIFEXISTS`ett`;CREATETABLE`ett``id`int11DEFAULTNULLENGINE=MyISAMDEFAULTCHARSET=gbk;DROPTABLEIFEXISTS`test`;CREATETABLE`test``id`int4NOTNULLAUTO_INCREMENT,`name`char20NOTNULL,PRIMARYKEY`id`ENGINE=MyISAMAUTO_INCREMENT=12DEFAULTCHARSET=gbk;更多用法可以执行mysqldump–help查询;有关mysql和mysqldump同学们要详细总结; 5恢复数据库source命令恢复进入mysql数据库控制台,mysql-uroot-pmysql>use数据库然后使用source命令,后面参数为脚本文件如这里用到的.sqlmysql>source这个文件是系统路径;rootoldboybakmysql-uroot-p'oldboy123';or\g....skip...Type'help;'or'\h''\c'toclearthecurrentinputstatement.mysql>useoldboyDatabasechangedmysql>showtables;+------------------+|Tables_in_oldboy|+------------------+|ett||test|+------------------+2rowsinsetsecmysql>droptablestest;QueryOK,0rowsaffectedsecmysql>systemls.mysql>source./<==还是用第一版没加字符集的备份,就是备份后查看乱码的备份; QueryOK,0rowsaffectedsec...skip...QueryOK,0rowsaffectedsec Q...skip...QueryOK,0rowsaffectedsecmysql>selectfromtest;+----+-------------+|id|name|+----+-------------+|1|zhaoyue||2|jesse||4|elain||5|wodi||6|yingsui||7|zhangyang||8|zaixiangpan||9|||10||<==乱码|11||+----+-------------+10rowsinsetsecmysql>setnamesgbk;QueryOK,0rowsaffectedsecmysql>selectfromtest;+----+-------------+|id|name|+----+-------------+|1|zhaoyue||2|jesse||4|elain||5|wodi||6|yingsui||7|zhangyang||8|zaixiangpan||9|||10|老男孩|<==仍然是正常的,就是说备份不加字符集导出,将来恢复不会影响恢复的数据,但是备份后查看文件会乱码;|11|我|+----+-------------+10rowsinsetsecmysql命令恢复标准mysql-uoldboy-p'oldboy'oldboy<mysql>systemmysql-uroot-p'oldboy123'oldboy<<==导入的是备份时加字符集的版本;mysql>selectfromtest;+----+-------------+|id|name|+----+-------------+|1|zhaoyue||2|jesse||4|elain||5|wodi||6|yingsui||7|zhangyang||8|zaixiangpan||9|||10|老男孩|<==因为上文source导入时已经setnamesgbk了,所以此处不是乱码;|11|我|+----+-------------+10rowsinsetsecMyISAM引擎备份由于MyISAM引擎为表级锁,因此,在备份时需要防止在备份期间数据写入而导致不一致,所以,在备份时使用--lock-all-tables加上读锁mysqldump-A-F-B--lock-all-tables|gzip>/data/backup/$date+%F.特别提示:有关MyISAM和InnoDB引擎的差别和在工作中如何选择,在前面的文章已经详细讲解过了,这里就不在讲了;InnoDB引擎备份InnoDB引擎为行锁,因此,备份时可以不对数据库加锁的操作,可以加选项--single-transaction进行备份:mysqldump-A-F-B--single-transaction|gzip>/data/backup/$date+%F.特别注意:1--single-transaction仅适用于InnoDB引擎;生产环境mysqldump备份命令mysqldump–uroot–p–S/data/3306/–default-character-set=gbk–single-transaction–F–Boldboy|gzip>/server/backup/mysql_$date+%F.:注-F:刷新bin-log参数,数据库备份完以后,会刷新bin-log增量备份:更新bin-log:mysqladmin–uroot–p–S/data/3306/flush-logs如生成文件把生成的最新文件,CP到/var/backup/把二进制的日志生成sql语句:mysqlbinlog>如果有多个库,我们应该用-d来指定恢复单个库mysqlbinlog–doldboy>当然对于库也要分库备,否则恢复还是麻烦还原数据:先还原全备,再还原增备先还原全备:mysql–uroot–p<还原增备:mysql–uroot–p<恢复增备的时候,需要把误操作的语句删掉后,再还原,否则,还原后,还是会和误操作后一样基于时间点的增量恢复mysqlbinlog–start-datetime=’2011-03-1902:58:54’—stop-datetime=’2011-03-1903:22:44’–r上面语句将显示02:58:54-----2011-03-1903:22:44时间段的binlog,并输出到拽定开始时间到文件结束mysqlbinlog–start-datetime=’2011-03-1902:58:54’–doldboy–r这个语句只有开始时间,那么就是从2011-03-1902:58:54时刻到日志结尾,lodboy数据库的binlog输出到基于位置点的增量恢复指定开始位置和结束位置mysqlbinlog–start-position=510–stop-position=1312–r输出初始位置510,结束位置1312的所有binlog日志到注意:结尾的日志点细弱特殊不会被包含;即输出1312pos以前的binlog;指定开始位置到文件结束mysqlbinlog–start-position=510–r输出初始位置510,结束位置到文件结尾的所有binlog到;当然,你也可以指定库名输出binlog;如:mysqlbinlog--start-position=510–r–doldboy从文件开头到指定结束位置mysqlbinlog--stop-position=954-r输出从文件开始位置,到954位置截止的所有binlog掌握和查找打开的文件lsof列出打开的文件实用程序会显示打开的文件名;其选项仅显示某些进程,只有一个进程的某些文件描述符,或只有某些网络连接网络连接使用文件描述符,就像普通文件一样,lsof也显示这些;使用ps–ef确定了可疑进程后,输入以下命令:lsof-s-ppid服务器最大设置的连接数:151mysql>showvariableslike'max_connections';+-----------------+-------+|Variable_name|Value|+-----------------+-------+|max_connections|151|+-----------------+-------+1rowinsetsec服务器响应的最大连接数:152mysql>showglobalstatuslike'Max_used_connections';|Variable_name|Value|+----------------------+-------+|Max_used_connections|152|+----------------------+-------+1rowinsetsec查看服务器key_buffer_size数值:4mysql>showvariableslike'key_buffer_size';+-----------------+-----------+|Variable_name|Value|+-----------------+-----------+|key_buffer_size|4|+-----------------+-----------+1rowinsetsec查看服务器现在使用的key_buffer_size使用情况:key_read_requests:4key-reads:830525mysql>showglobalstatuslike'key_read%';|Variable_name|Value|+-------------------+-----------+|Key_read_requests|4||Key_reads|830525|+-------------------+-----------+2rowsinsetsec计算索引未命中的概率:key_cache_miss_rate=key_reads/key_read_requests100%达到%以下即每1000个请求有一个直接读硬盘以下都很好,如果key_cache_miss_rae在%以下的话,则说明key_buffer_size分配得过多,可以适当减少;Key_blocks_unused表示未使用的缓存簇数,Key_blocks_used表示曾经用到的最大的blocks数,比如这台服务器,所有的缓存都用到了,要么增加key_buffer_size,要么就是过度索引,把缓存占满了;比较理想的设置是:key_blocks_used/key_blocks_unused+key_blocks_used100%=80%mysql>showglobalstatuslike'key_blocks_u%';+-------------------+--------+|Variable_name|Value|+-------------------+--------+|Key_blocks_unused|317003||Key_blocks_used|6439|+-------------------+--------+2rowsinsetsec临时表:当执行语句时,关于已经被创造了的隐含临时表的数量,我们可以用如下命令查询其具体情况:mysql>showglobalstatuslike'created_tmp%';+-------------------------+--------+|Variable_name|Value|+-------------------------+--------+|Created_tmp_disk_tables|343326||Created_tmp_files|172||Created_tmp_tables|675795|+-------------------------+--------+3rowsinsetsec每次创建临时表时,created_tmp_tables都会增加,如果是在磁盘上创建临时表,created_tmp_disk_tables也会增加;created_tem_files表示MYSQL服务创建的临时文件数,比较理想的配置是:Created_Tmp_disk_tables/Created_tmp_tables100%<=25%比如上面服务器Created_Tmp_disk_tables/Created_tmp_tables100%=50%,比较差了;我们再看一下MYSQL服务器对临时表的配置:mysql>showvariableswhereVariable_namein'tmp_table_size','max_heap_table_size';+---------------------+----------+|Variable_name|Value|+---------------------+----------+|max_heap_table_size|||tmp_table_size||+---------------------+----------+2rowsinsetsec只有16M以下的临时表才能全部放在内存中,超过的就会用到硬盘临时表;打开表的情况Open_tables表示打开表的数量,Opend_tables表示打开过的表数量,我们可以用如下命令查看其具体情况:mysql>showglobalstatuslike'open%tables%';+---------------+--------+|Variable_name|Value|+---------------+--------+|Open_tables|512||Opened_tables|234200|+---------------+--------+2rowsinsetsec如果Opened_tables数量过大,说明配置中tables_cacehMYSQL之后这个值叫做table_open_cache的值可能太小;我们查询一下服务器table_cache值:mysql>showvariableslike'table_open_cache';+------------------+-------+|Variable_name|Value|+------------------+-------+|table_open_cache|614|+------------------+-------+1rowinsetsec比较合适的值为:Open_tables/Opened_tables100%>=85%Open_tables/table_open_cache100%<=95%进程使用情况如果我们在MYSQL服务器的配置文件中设置了thread-cache_size,当客户端断开之时,服务器处理此客户请求的线程将会缓存起来以响应下一个客户而不是销毁前提是缓存数未达上限;Threads_created表示创建过的线程数,我们可以用如下命令查看:mysql>showglobalstatuslike'Thread%';+-------------------+-------+|Variable_name|Value|+-------------------+-------+|Threads_cached|7||Threads_connected|2||Threads_created|2124||Threads_running|2|+-------------------+-------+4rowsinsetsec如果发现Threads_created的值过大的话,表明MYSQL服务器一直在创建线程,这也是比较耗费资源的,可以适当增大配置文件中的thread_cache_size的值;查询服务器thread_cahce_size配置,如下所示:mysql>showvariableslike'thread_cache_size';+-------------------+-------+|Variable_name|Value|+-------------------+-------+|thread_cache_size|8|+-------------------+-------+1rowinsetsec查询缓存它涉及的主要有两个参数,query_cache_size是设置MYSQL的Query_Cache大小,query_cache_size是设置使用查询缓存的类型,我们可以用如下命令查看其具体情况:mysql>showglobalstatuslike'qcache%';+-------------------------+----------+|Variable_name|Value|+-------------------------+----------+|Qcache_free_blocks|130||Qcache_free_memory|||Qcache_hits|||Qcache_inserts|2391041||Qcache_lowmem_prunes|0||Qcache_not_cached|671718||Qcache_queries_in_cache|676||Qcache_total_blocks|1798|+-------------------------+----------+8rowsinsetsec我们再查询一下服务器上关于query-cache的配置命令如下:mysql>showvariableslike'query_cache%';+------------------------------+----------+|Variable_name|Value|+------------------------------+----------+|query_cache_limit|1048576||query_cache_min_res_unit|4096||query_cache_size|||query_cache_type|ON||query_cache_wlock_invalidate|OFF|+------------------------------+----------+5rowsinsetsec排序使用情况它表示系统中对数据进行排序时所使用的Buffer,我们可以用如下命令查看:mysql>showglobalstatuslike'sort%';+-------------------+-----------+|Variable_name|Value|+-------------------+-----------+|Sort_merge_passes|84||Sort_range|393425||Sort_rows|2||Sort_scan|324383|+-------------------+-----------+4rowsinsetsecSort_merge_passes包括如下步骤:MYSQL首先会尝试在内存中做排序,使用的内存大小由系统变量sort_buffer_size来决定,如果它不够大则把所有的记录都读到内存中,而MYSQl则会把每次在内存中排序的结果存到临时文件中,等MYSQL找到所有记录之后,再把临时文件中的记录做一次排序;这次再排序就会增加sort_merge_passes;实际上,MYSQL会用另一个临时文件来存储再次排序的结果,所以我们通常会看到sort_merge_passes增加的数值是建临时文件数的两倍;因为用到了临时文件,所以速度可能会比较慢,增大sort_buffer_size会减少sort_merge_passes和创建临时文件的次数,但盲目地增加sort_buffer_size并不一定能提高速度;文件打开数open_files我们在处理MYSQL故障时,发现当open_files大于open_files_limit值时,MYSQL数据库就会发生卡住的现象,导致APACHE服务器打不开相应页面;这个问题大家在工作中应注意,我们可以用如下命令查看其具体情况:mysql>showglobalstatuslike'open_files';+---------------+-------+|Variable_name|Value|+---------------+-------+|Open_files|901|+---------------+-------+1rowinsetsecmysql>showvariableslike'open_files_limit';+------------------+-------+|Variable_name|Value|+------------------+-------+|open_files_limit|1185|+------------------+-------+1rowinsetsec比较适合的设置是:open_files/open_files_limit100%<=75%带宽的大小通常我们在架构网站的时候,会设定一些目标,比如网站每天要能承受千万PV的访问量,这时我们要估算一下大概需要多大的带宽;计算带宽大小主要的有2个主要指标峰值流量和页面大小,我们先做出必要的假设:1.峰值流量是平均流量的3倍;2.每次访问平均的页面大小是100KB左中;如果1000万PV的访问量在一天内平均分布,每秒大约120次访问,如果按平均每次访问页面大小是100KB字节计算,120次访问总计大约就是12000KB;字节的单位是Byte,而带宽单位是bit,它们之间的关系是1Byte=8bit,所以12000kByte大致就相当于96000kbit,也就是90Mbps的样子;实际上,我们的网站必须能在峰值流量时保持正常运行状态,所以按照假设的峰值流量计算,真实带宽的需求应该在270Mbps左右;当然,这个结论是根据前面提到的两点假设得出来的,具体值则需要根据公司实际情况来计算;数据库服务器是重中之重,因为网站的瓶颈问题大多出在数据库身上;现在一般的中小网站多使用MYSQL数据库;一般而言,使用MYSQL数据库的时候,我们应该配置为一个主从一方多从结构,主数据库服务器使用InnoDB表结构,从数据服务器使用MyiSAM表结构;这样充分发挥它们各大自的优势,而且这样的方从分离了读写操作,降低了读操作的压力;我们还可以设定一个专门的从服务器作为备份服务器,有时候还需要借助mc ached/'target='_blank'>Memcached之类的第三方软件,以便适应更大访问量的要求;跟踪进程:找其中一个CPU100%的php-cgi进程的PID,用以下命令跟踪一下:strace-p10747如果屏幕显示:select7,6,6,,{15,0}=1out6,left{15,0}poll{fd=6,events=POLLIN},1,0=0Timeoutselect7,6,6,,{15,0}=1out6,left{15,0}poll{fd=6,events=POLLIN},1,0=0Timeoutselect7,6,6,,{15,0}=1out6,left{15,0}poll{fd=6,events=POLLIN},1,0=0Timeoutselect7,6,6,,{15,0}=1out6,left{15,0}poll{fd=6,events=POLLIN},1,0=0Timeout那么,就可以确定是file_get_contents导致的问题了;lsoflsof-i:80显示占用80端口的进程lsof-p1457显示进程号为1457的进程所打开的文件查看服务器型号:dmidecode-ssystem-product-name。

Linux运维工程师的岗位职责(15篇)

Linux运维工程师的岗位职责(15篇)

Linux运维工程师的岗位职责(15篇)Linux运维工程师的岗位职责(15篇)现如今,需要使用岗位职责的场合越来越多,制定岗位职责可以有效规范操作行为。

那么制定岗位职责真的很难吗?以下是我整理的Linux运维工程师的岗位职责,仅供参考,欢迎大家阅读。

Linux运维工程师的岗位职责7职责:1、负责海内外运营业务平台的环境部署及维护,确保平台稳定的运行;2、帮助运维主管完成,运维相关系统的部署;4、独立编写Linux运维脚本工具;5、Linux操作系统性能优化,数据库备份和恢复;6、对服务器和服务的运行状况监控,准时发觉问题,并处理问题;7、日常运维文档编写,如编写系统运维手册、部署文档、性能参数说明等。

岗位要求:1、两年以上互联网行业运维工作阅历,有平台运维工作阅历者优先;2、熟识LNMP环境部署及MYSQL数据库的主从,双主部署,性能优化;3、熟识Memcached、Redis等维护,有Hadoop、zookeeper、rabbitmq、Kafka部署使用阅历更佳;4、熟识TCP/IP网络通讯协议及常见的监控系统(如Zabbix、Nagios、Cacit等),能开发监控脚本,订制监控模板5、对负载均衡及分布式系统架构有肯定了解;6、思路清楚,具备良好的团队协作精神、沟通力量、服务意识。

Linux运维工程师的岗位职责8职责:1、负责研发部IT监控平台的规划和建设;2、负责研发部运维自动化平台规划建设;3、负责研发部IT系统的网络规划、建设、运维,保证各业务系统正常运行;4、负责研发部现有IT系统部署架构以及性能优化;岗位要求:1、精通Linux系统的操作命令,有RHCE、RHCSA证书更佳;2、熟识Oracle、Mysql、SQLServer等关系型数据中的.至少1—2种,且至少有3年以上使用运维阅历;3、能独立完成各种中间件集群在Linux平台的部署、调优,包括且不限于Zookeeper、Kafka、Storm、Redis等等;4、熟识如下至少一种编程语言shell、perl、python、ruby且独立输出过实战案例;5、熟识主流的IT系统监控软件如zabbix、nagios等并有实际操作阅历;6、了解hadoop/spark等大数据平台,能使用大数据平台进行相关的数据处理;7、熟识AWS、阿里云、腾讯云等公有云平台的相关操作;8、具有良好的学习和解决问题的力量,具有团队合作精神;9、吃苦耐劳,能承受肯定的工作压力。

Linux运维工程师工作手册

Linux运维工程师工作手册

Linux运维工程师工作手册释放内存:syncecho3>/proc/sys/vm/drop_caches?Linux查看Dell服务器型号命令:dmidecode|grep"ProductName"查看系统负载:cat/proc/loadavg1/28310904意思是:前三个是系统负载,1/283中,1代表此时运行队伍中的进程个数,而283是代表此时的进程总数10904到此为止,最后创建的一个进程ID。

?系统装好后,要做的事如下:关闭防火墙Selinux:vim/etc/selinux/config把SELINUX=enforcing改成SELINUX=disabled更改主机名:vim/etc/sysconfig/network修改主机名,不要用localhost添加hosts主机记录vim/etc/hosts中,在后面,添加自己的主机名?创建0-9a-z目录foriin`seq09`{a..z};domkdir-p$i;done:?测试硬盘性能工具:iozone监视服务器每少上下文切换数次工具:Nmon(很不错的性能监视工具)?#占用内存大小前10的进程ps-eocomm,size--sort-size|head-10?#占用cp u使用前10的进程ps-eocomm,pcpu--sort-pcpu|head-10??一、Apache服务优化:21.配置cronolog进行日志轮询22.错误页面优雅显示2文件压缩功能3缓存功能45.更改apache的默认用户5模式,提升并发数(可以达到2000-5000)57.屏蔽apache版本等敏感信息6目录文件权限设置(root,目录755,文件644)69.开启增加连接数610.apache防盗链功能811.禁止目录Index812.禁止用户覆盖(重载)813.关闭CGI914.避免使用.htaccess文件(分布式配置文件)915.apache的安全模块916.正确途径取得源代码,勤打apache补丁10日志授予root700权限1018.系统内核参数优化1019.禁止PHP解析指定站点的目录1020.使用tmpfs文件系统替代频繁访问的目录1121尽可能减少HTTP请求数1122使用CDN做网站加速12??查看你的服务器网络连接状态netstat-n|awk'/^tcp/{++S[$NF]}END{for(ainS)printa,S[a]}'◆CLOSED:无连接是活动的或正在进行?◆LISTEN:服务器在等待进入呼叫?◆SYN_RECV:一个连接请求已经到达,等待确认?◆SYN_SENT:应用已经开始,打开一个连接?◆ESTABLISHED:正常数据传输状态?◆FIN_WAIT1:应用说它已经完成?◆FIN_WAIT2:另一边已同意释放?◆ITMED_WAIT:等待所有分组死掉?◆CLOSING:两边同时尝试关闭?◆TIME_WAIT:另一边已初始化一个释放?◆LAST_ACK:等待所有分组死掉?ESTABLISHED的值其实也是当前的并发数,这个可重点关注下;另外,可关注下TIME——WAIT这项的数值。

系统运维工程师工作职责与任职要求范本(2篇)

系统运维工程师工作职责与任职要求范本(2篇)

系统运维工程师工作职责与任职要求范本系统运维工程师是指负责维护和管理企业服务器、网络和相关系统的专业技术人员。

他们需要具备扎实的技术知识和丰富的经验,以确保系统的稳定运行和高效性。

本文将以范本的形式介绍系统运维工程师的工作职责和任职要求。

职责:1. 管理和维护企业服务器和网络系统,包括安装、配置和升级操作系统和应用软件,确保系统的稳定运行。

2. 监控服务器和网络的性能,并及时发现和解决故障和问题,以确保系统的高效性和可靠性。

3. 协助开发人员和项目经理部署和维护开发、测试和生产环境,确保系统的可用性和安全性。

4. 负责制定和执行系统备份和恢复计划,以防止数据丢失和系统宕机。

5. 管理和维护企业的网络设备,包括交换机、路由器和防火墙等,确保网络的稳定性和安全性。

6. 跟踪和控制系统的访问权限,确保只有授权的用户可以访问系统和数据。

7. 与第三方供应商和合作伙伴进行合作,解决系统和网络相关的问题和需求。

8. 撰写和维护操作手册和技术文档,以供用户和其他团队参考。

任职要求:1. 本科及以上学历,计算机相关专业,有优秀的计算机基础知识和技能。

2. 具备3年以上系统运维相关经验,熟悉常见的操作系统,如Windows、Linux等。

3. 熟悉网络基础知识和网络设备的配置和管理,如交换机、路由器和防火墙等。

4. 熟悉常用的服务器硬件和存储设备,有服务器的规划、部署和维护经验。

5. 熟练掌握至少一种脚本语言,如Shell、Python等,能够进行自动化脚本编写和系统优化。

6. 具备良好的沟通和协调能力,能够与其他团队成员有效合作,解决问题。

7. 具备独立分析和解决问题的能力,能够快速、准确地诊断和修复故障。

8. 注重学习和自我提升,能够跟上技术发展的步伐,提升自己的技术能力。

总结:系统运维工程师是企业IT团队中不可或缺的一员,他们需要具备扎实的技术基础和丰富的经验,以确保系统的稳定运行和高效性。

他们的工作职责包括管理和维护服务器和网络系统、监控和解决故障和问题、协助部署和维护环境、制定备份和恢复计划、管理网络设备、控制系统权限等。

软件系统运维手册(完整资料).doc

软件系统运维手册(完整资料).doc

软件系统运维⼿册(完整资料).doc【最新整理,下载后即可编辑】系统运维⼿册1、⽬的 (3)2、适⽤范围 (3)3、服务器及数据库概述 (3)3.1 服务器概述 (3)3.2 数据库概述 (3)4、系统服务程序的详细说明 (4)4.1系统服务程序的构成 (4)4.2 系统服务程序的启动、关闭及维护管理 (4)4.2.1 dhcp主服务 (4)4.2.2 dhcp从服务 (5)4.2.3 web管理模块 (5)5、服务器硬件维护(略) (6)6、windows 2003系统的⽇常维护 (6)6.1 定期检查磁盘空间 (6)6.2 维护系统注册表 (7)6.3 定期备份系统注册表 .....................................................................76.4清理system路径下的⽆⽤的dll⽂件 (7)7、备份策略 (8)7.1 备份⽅式 (8)7.2 备份计划 (8)7.3 常见故障恢复 (8)9、数据库的⽇常维护 (11)9.1 检查数据库的基本状况 (11)9.2 检查数据库⽇志⽂件 (11)9.4监控数据库表空间的使⽤情况(字典管理表空间) (11)9.4.1 判断是否需要碎⽚整理 (11)10、命令解释 (12)1、⽬的楚天⾏消费卡管理系统运营⽀撑系统使⽤的服务器中,服务器均采⽤windows xp操作系统,数据库版本为:sql server 2000,随着业务的开展,sql server 数据库中存储的数据量也不断增⼤,这样操作系统和数据库的⽇常维护就显得⼗分重要。

本⼿册详细描述了程序模块,windows xp操作系统,负载平衡及sql server 数据库等⽇常检查的主要步骤,指导现场⼯程师对其进⾏监控和维护。

2、适⽤范围使⽤者为⽹e通宽带⽹络运营⽀撑系统维护⼯程师3、服务器及数据库概述3.1 服务器概述服务器数量:4台,基本信息如下:3.2 数据库概述数据库软件分别安装在主服务器上。

系统运维工程师工作职责与任职要求(三篇)

系统运维工程师工作职责与任职要求(三篇)

系统运维工程师工作职责与任职要求系统运维工程师的工作职责包括:1. 确保系统的稳定运行,处理系统故障和问题,并及时解决。

2. 对系统进行监控和性能优化,确保系统的高效运行。

3. 定期进行系统备份和恢复,保证数据的安全性。

4. 管理系统的用户权限和访问控制,确保系统的安全性。

5. 编写和维护系统运维文档,包括操作手册、故障处理流程等。

6. 参与系统规划和架构设计,提出系统改进和优化的建议。

7. 协助开发人员进行系统部署和升级,确保系统的可靠性和稳定性。

8. 跟踪技术发展和行业动态,了解最新的系统运维技术和工具。

系统运维工程师的任职要求包括:1. 熟悉常见的操作系统,如Windows、Linux等,并具备系统安装、配置和故障排除的能力。

2. 熟悉网络基础知识,具备网络故障排除和网络设备配置的能力。

3. 了解常见的数据库,如Oracle、MySQL等,并具备数据库安装、配置和维护的能力。

4. 具备一定的编程能力,能够使用脚本语言进行自动化运维。

5. 具备良好的沟通能力和团队合作精神,能够与开发团队和其他部门进行有效的协作。

6. 具备学习能力和问题解决能力,能够快速掌握新技术和解决复杂的系统问题。

7. 具备高度的责任感和紧急情况下的应对能力,能够快速响应和解决系统故障。

这些是一般情况下系统运维工程师的工作职责和任职要求,具体情况可能会根据企业的需求和岗位要求有所不同。

系统运维工程师工作职责与任职要求(二)系统运维工程师的工作职责包括:1. 负责系统的日常维护和监控,确保系统的稳定运行。

2. 诊断和解决系统故障,及时处理系统故障和紧急事故。

3. 配置和管理服务器,包括操作系统的安装和更新、网络配置、存储管理等。

4. 维护和管理数据库,包括备份和恢复、性能优化、权限管理等。

5. 实施系统的安全策略,并对系统进行漏洞扫描和安全评估。

6. 提供系统运维相关的技术支持和培训,解答用户的问题和疑虑。

7. 编写和维护系统运维相关的文档、脚本和工具,提高工作效率。

系统运维工程师工作职责描述(五篇)

系统运维工程师工作职责描述(五篇)

系统运维工程师工作职责描述一、系统运维1、负责系统发布,部署,编写集成方案和部署方案2、负责系统故障、疑难问题排查处理,记录故障详情、解决过程3、负责配合开发搭建测试平台,协助开发设计、推行、实施和持续改进4、负责日常系统维护及监控,开发搭建系统日常维护、监控、分析、报警平台系统5、负责信息系统在客户现场的安装、培训和维护工作负责收集客户在使用系统过程中的原始需求,优化需求,传递给产品经理二、网络运维1、负责日常服务器、网络,邮箱,电话系统,视频会议系统的管理和维护2、负责日常应用软件,公司桌面办公软件的维护3、持续改进日常操作以及优化公司网络,跟踪网络互连技术发展,合理运用新技术4、负责对服务器的健康状况,业务进行监控,并处理应急情况日常服务器巡检,备案,安全等系统运维工程师工作职责描述(二)1、协助完成部门的文档编制工作,能独立完成系统的数据统计工作;2、协助处理公司、分公司、各园区等网络日常维护、故障排除等工作,保证网络运行通畅、稳定;3、协助处理办公设备、网络及相关设备、电话系统、计算机软硬件的管理维护、故障诊断与排除,在需要时可以进行基本的维修,负责病毒的查杀,维护网络系统安全;4、负责公司会议、培训、活动等支持工作,对各部门提供IT技术支持,并积极主动配合各部门快速解决相关问题;5、完成领导交办的其他事项。

系统运维工程师工作职责描述(三)1、熟悉阿里云、腾讯云业务开通和维护(服务器,数据库,均衡负载,RDS,OSS等);2、熟悉Windows,Linu____(Debian,Centos)配置和维护;3、域名申请和备案;4、有分布式服务器、数据库部署配置经验;5、熟悉或了解PostgreSQL数据库;6、负责信息系统使用过程中日常咨询答疑、问题处理及跟进;7、配合项目经理完成项目实施及软件运维工作(产品部署、升级、安装调试、系统上线前的验证、项目验收等)8、项目管理权限的分配管理,编制及登记。

Linux运维工程师工作手册

Linux运维工程师工作手册

L i n u x运维工程师工作手册释放内存:syncecho?3?>?/proc/sys/vm/drop_caches?Linux查看Dell服务器型号命令:dmidecode?|?grep?"Product?Name"查看系统负载:cat?/proc/loadavg0.0??0.00?0.00?1/283?10904意思是:前三个是系统负载,1/283中,1代表此时运行队伍中的进程个数,而283是代表此时的进程总数10904到此为止,最后创建的一个进程ID。

?系统装好后,要做的事如下:关闭防火墙Selinux:vim?/etc/selinux/config把SELINUX=enforcing改成SELINUX=disabled更改主机名:vim?/etc/sysconfig/network修改主机名,不要用localhost添加hosts主机记录?创建0-9?a-z目录for?i?in?`seq?0?9`?{a..z};do?mkdir?-p?$i;done:?测试硬盘性能工具:iozone监视服务器每少上下文切换数次工具:Nmon(很不错的性能监视工具) ?#占用内存大小前10的进程ps?-eo?comm,size?--sort?-size?|?head?-10?#占用cp u使用前10的进程ps?-eo?comm,pcpu?--sort?-pcpu?|?head?-10???一、Apache服务优化:?21.配置cronolog进行日志轮询?22.错误页面优雅显示?23.mod_deflate文件压缩功能?34.mod_expires缓存功能?45.更改apache的默认用户?56.worker模式,提升并发数(可以达到2000-5000)?57.屏蔽apache版本等敏感信息?68.apache目录文件权限设置(root,目录755,文件644)?69.开启httpd-mpm.conf?增加连接数?611.禁止目录Index?812.?禁止用户覆盖(重载)?813.关闭CGI?914.避免使用.htaccess文件(分布式配置文件)?915.?apache的安全模块?916.正确途径取得源代码,勤打apache补丁?1017.apache日志授予root?700权限?1018.系统内核参数优化?1019.禁止PHP解析指定站点的目录?1020.使用tmpfs文件系统替代频繁访问的目录?1121尽可能减少?HTTP?请求数?1122使用CDN做网站加速?12??查看你的服务器网络连接状态netstat?-n?|?awk?'/^tcp/?{++S[$NF]}?END?{for(a?in?S)?print?a,?S[a] }'◆CLOSED:无连接是活动的或正在进行?◆LISTEN:服务器在等待进入呼叫?◆SYN_RECV:一个连接请求已经到达,等待确认?◆SYN_SENT:应用已经开始,打开一个连接?◆ESTABLISHED:正常数据传输状态?◆FIN_WAIT1:应用说它已经完成?◆ITMED_WAIT:等待所有分组死掉?◆CLOSING:两边同时尝试关闭?◆TIME_WAIT:另一边已初始化一个释放?◆LAST_ACK:等待所有分组死掉?ESTABLISHED的值其实也是当前的并发数,这个可重点关注下;另外,可关注下TIME——WAIT这项的数值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux运维工程师工作手册释放内存:syncecho3>/proc/sys/vm/drop_cachesLinux查看Dell服务器型号命令:dmidecode|grep"Product Name"查看系统负载:cat/proc/loadavg0.00.000.001/28310904意思是:前三个是系统负载,1/283中,1代表此时运行队伍中的进程个数,而283是代表此时的进程总数10904到此为止,最后创建的一个进程ID。

系统装好后,要做的事如下:关闭防火墙Selinux:vim/etc/selinux/config把SELINUX=enforcing改成SELINUX=disabled更改主机名:vim/etc/sysconfig/network修改主机名,不要用localhost添加hosts主机记录vim/etc/hosts中,在127.0.0.1后面,添加自己的主机名创建0-9a-z目录for i in`seq09`{a..z};do mkdir-p$i;done:测试硬盘性能工具:iozone监视服务器每少上下文切换数次工具:Nmon(很不错的性能监视工具)#占用内存大小前10的进程ps-eo comm,size--sort-size|head-10#占用cp u使用前10的进程ps-eo comm,pcpu--sort-pcpu|head-10一、Apache服务优化: 21.配置cronolog进行日志轮询 22.错误页面优雅显示 23.mod_deflate文件压缩功能 34.mod_expires缓存功能 45.更改apache的默认用户 56.worker模式,提升并发数(可以达到2000-5000) 57.屏蔽apache版本等敏感信息 68.apache目录文件权限设置(root,目录755,文件644) 69.开启httpd-mpm.conf增加连接数 610.apache防盗链功能811.禁止目录Index812.禁止用户覆盖(重载)813.关闭CGI914.避免使用.htaccess文件(分布式配置文件)915.apache的安全模块916.正确途径取得源代码,勤打apache补丁1017.apache日志授予root700权限1018.系统内核参数优化1019.禁止PHP解析指定站点的目录1020.使用tmpfs文件系统替代频繁访问的目录1121尽可能减少HTTP请求数1122使用CDN做网站加速12查看你的服务器网络连接状态netstat-n|awk'/^tcp/{++S[$NF]}END{for(a in S)print a,S[a]}'◆CLOSED:无连接是活动的或正在进行◆LISTEN:服务器在等待进入呼叫◆SYN_RECV:一个连接请求已经到达,等待确认◆SYN_SENT:应用已经开始,打开一个连接◆ESTABLISHED:正常数据传输状态◆FIN_WAIT1:应用说它已经完成◆FIN_WAIT2:另一边已同意释放◆ITMED_WAIT:等待所有分组死掉◆CLOSING:两边同时尝试关闭◆TIME_WAIT:另一边已初始化一个释放◆LAST_ACK:等待所有分组死掉ESTABLISHED的值其实也是当前的并发数,这个可重点关注下;另外,可关注下TIME——WAIT 这项的数值。

Linux下高并发的Squid服务器,TCP TIME_WAIT套接字数量经常达到两、三万,服务器很容易被拖死。

通过修改Linux内核参数,可以减少Squid服务器的TIME_WAIT 套接字数量。

#查看系统本地可用端口极限值cat/proc/sys/net/ipv4/ip_local_port_range寻找恶意IP并用iptables禁止掉netstat-an|grep:80|grep-v127.0.0.1|awk'{print$5}'|sort|awk-F:'{prin t$1,$4}'|uniq-c|awk'$1>50{print$1,$2}'4.5备份单个数据库mysqldump-u用户–p’密码’--default-character-set=latin1数据库名>备份文件名(数据库默认编码是latin1)普通备份:mysqldump-uroot-p'oldboy123'oldboy>/server/bak/oldboy.sql压缩备份:mysqldump-uroot-p'oldboy123'oldboy|gzip>/server/bak/oldboy.sql.gz设置字符集备份:mysqldump-uroot-p'oldboy123'oldboy--default-character-set=gbk|gzip>/server /bak/oldboy.sql.gz执行结果:[root@oldboy~]#mkdir/server/bak-p[root@oldboy~]#mysqldump-uroot-p'oldboy123'oldboy>/server/babackup/bak/[root@oldboy~]#mysqldump-uroot-p'oldboy123'oldboy>/server/bak/oldboy.sql [root@oldboy~]#mysqldump-uroot-p'oldboy123'oldboy|gzip>/server/bak/oldboy .sql.gz[root@oldboy~]#ls-l/server/bak/total8-rw-r--r--1root root1991Apr900:51oldboy.sql-rw-r--r--1root root801Apr900:51oldboy.sql.gz4.6mysqldump在做啥?mysqldump实际上就是把数据从mysql库里以逻辑的sql语句的形式导出。

备份的数据过滤掉注释:[root@oldboy~]#egrep-v"\*|--|^$"/server/bak/oldboy.sqlDROP TABLE IF EXISTS`test`;CREATE TABLE`test`(`id`int(4)NOT NULL AUTO_INCREMENT,`name`char(20)NOT NULL,PRIMARY KEY(`id`))ENGINE=MyISAM AUTO_INCREMENT=12DEFAULT CHARSET=gbk;LOCK TABLES`test`WRITE;INSERT INTO`test`VALUES(1,'zhaoyue'),(2,'jesse'),(4,'elain'),(5,'wodi'),(6,'y ingsui'),(7,'zhangyang'),(8,'zaixiangpan'),(9,'??????'),(10,'鑰佺敺瀛?),(11,'鎴?);<==这里是乱码,是因为导出时的格式没加字符集,而系统当前字符集又是zh_cn.gb18030格式,一般恢复到数据库里会正常,只是系统外查看不正常而已。

另外insert 是批量插入的方式,这样在恢复时效率很高。

UNLOCK TABLES;提示:看到了吧,就是我们曾经插入的表和数据。

[root@oldboy~]#mysqldump-uroot-p'oldboy123'oldboy--default-character-set=gb k>/server/bak/oldboy-gbk.sql[root@oldboy~]#egrep-v"\*|--|^$"/server/bak/oldboy-gbk.sqlDROP TABLE IF EXISTS`test`;CREATE TABLE`test`(`id`int(4)NOT NULL AUTO_INCREMENT,`name`char(20)NOT NULL,PRIMARY KEY(`id`))ENGINE=MyISAM AUTO_INCREMENT=12DEFAULT CHARSET=gbk;LOCK TABLES`test`WRITE;INSERT INTO`test`VALUES(1,'zhaoyue'),(2,'jesse'),(4,'elain'),(5,'wodi'),(6,'y ingsui'),(7,'zhangyang'),(8,'zaixiangpan'),(9,'??????'),(10,'老男孩'),(11,'我');<==。

其他乱码是当初插入时就有问题的。

UNLOCK TABLES;4.7备份多个库[root@oldboy~]#mysqldump-uroot-p'oldboy123'-B oldboy mysql--default-character-set=gbk>/server/bak/oldboy-gbk-muli.sql提示:-B参数是关键,表示接多个库。

※※※※※(生产环境常用)-B,--databases To dump several databases.Note the diff erence in usage;In this case no tables are given.All name arguments areregarded as databasenames.'USE db_name;'will beincluded in the output.参数说明:该参数用于导出若干个数据库,在备份结果中会加入USE db_name和CREATE DATABASE`db_name`;-B后的参数都将被作为数据库名。

该参数比较常用。

当-B后的数据库列全时同-A 参数。

请看-A的说明。

4.8备份单个表mysqldump-u用户名-p数据库名表名>备份的文件名mysqldump-u root-p oldboy test>oldboy_oldboy.sql执行结果:[root@oldboy~]#mysqldump-uroot-p'oldboy123'oldboy test--default-character-s et=gbk>/server/bak/oldboy-gbk-single.sql提示:无-B参数,库oldboy后面就是test表了。

相关文档
最新文档