linux 运维手册

合集下载

Linux实验手册汇总

Linux实验手册汇总

Linux实验手册补充实验步骤很详细Linux重于练习和动手一Linux安装注意磁盘分区二:用户简单操作:1、添加用户u1和u2,并分别设置口令#useradd u1 passwd u1#useradd u2 passwd u22、查看/etc/passwd及/etc/shadow文件内容,以确定两个用户以建立#ls -l /etc/passwd#ls -l /etc/shadow3、查看/home 目录下是否有u1和u2目录#ls-l /home4、以u1用户身份登录#su – u1三:文件及目录操作:1、以u1用户身份登录后,显示当前目录位置$pwd2、在u1目录下创建两个目录,分别为dir1和dir2$mkdir dir1 dir23、进入dir1目录用vi创建两个文件,文件名分别为test1、test2$cd ./dir1$vi test1 :wq!$vi test2 :wq!4、分别用cat、less、more命令查看test1和test2文件内容$cat test1$more test2$less test1 q5、进入dir2目录用touch创建两个空文件test3、test4$cd ../dir2$touch test3 test46、将dir1目录下的test1文件复制到/tmp目录下$cd ../dir1$cp test1 /tmp7、查看/tmp目录下是否有test1文件$ls -l /tmp8、将dir1目录下的test2移动到dir2目录下$cd ../dir2$mv test2 ../dir29、查看dir1目录下的文件$cd ../dir1$ls –l10、查看dir2目录下的文件$cd ../dir2$ls –l11、删除dir1目录及目录下的所有文件$cd ..$rm –rf dir112、分别查找/根分区下是否有test1与test2文件$find / -name test*13、删除dir2目录及目录下的所有文件$cd ..$rm –rf dir2四:设置文件或目录权限:1、以root用户身份登录$su – root (输入密码)2、用ls –l命令显示/tmp/test1文件权限(抄录显示行并详细指定其表示含义)#ls –l /tmp/test1- rw- rw- r-- 1 u1 u1 34 12月29 22:24 /tmp/test1 文件属主权限属主权限其它用户权限属主名属组名文件大小创建日期文件名称3、将/tmp/test1文件的属主改为u2,权限为读、写、可执行;属组改为u2,权限改为只读;其他用户无任何权限。

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服务器日常维护手册

linux服务器日常维护手册

Linux服务器日常维护手册引言概述随着信息技术的迅猛发展,Linux服务器在企业和个人应用中扮演着重要的角色。

为了确保服务器的正常运行、安全性和高效性,日常维护工作显得至关重要。

本手册将深入探讨Linux服务器日常维护的关键任务,帮助管理员更好地管理和维护服务器。

1. 系统更新与安全性1.1 定期更新操作系统- 1.1.1 更新源的配置:配置服务器的软件源,确保从官方可信任的源获取软件包,降低恶意软件风险。

- 1.1.2 定时更新系统:建立定期更新的策略,确保服务器及时获取操作系统和软件的最新补丁和安全更新。

- 1.1.3 自动化更新:配置自动化工具,如`unattended-upgrades`,减轻管理员手动更新的负担,提高系统安全性。

1.2 加强服务器安全- 1.2.1 配置防火墙:使用iptables或firewalld等工具配置防火墙规则,限制不必要的网络流量,提高服务器安全性。

- 1.2.2 定期修改密码:强制用户定期修改密码,采用复杂密码策略,增加系统账户的安全性。

- 1.2.3 禁用不必要的服务:关闭或禁用不必要的网络服务和端口,减小攻击面,提高系统抵抗攻击的能力。

2. 性能优化与监控2.1 资源监控- 2.1.1 使用监控工具:部署监控工具如Nagios、Zabbix等,实时监控服务器的CPU、内存、磁盘等资源使用情况。

- 2.1.2 设定报警阈值:根据服务器的实际负载情况,设定合理的资源利用率阈值,及时发现并解决潜在问题。

- 2.1.3 定期审查监控日志:定期审查监控日志,分析历史性能数据,优化服务器配置,提高整体性能。

2.2 磁盘管理与清理- 2.2.1 监控磁盘空间:设置定期任务,监控磁盘空间的使用情况,确保有足够的可用空间。

- 2.2.2 删除不必要文件:定期清理临时文件、日志文件以及不再使用的文件,释放磁盘空间。

- 2.2.3 确保文件系统一致性:定期使用`fsck`检查和修复文件系统,确保文件系统的一致性和稳定性。

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这项的数值。

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这项的数值。

系统运维操作手册

系统运维操作手册

xxxx系统运维操作手册xxxx公司二零零九年十月版本控制分发控制1概述 (4)2主机系统 (5)2.1 检查文件系统利用率 (5)2.2 查看系统硬件软件告警日志 (5)2.3 检查僵死或运行时间过长的进程 (6)2.4 检查系统CPU利用率 (7)2.5 检查系统内存利用率 (7)2.6 检查系统IO利用率 (8)2.7 检查系统交换量 (9)2.8 检查系统高可用性(HA)的使用状态 (9)2.9 清理过时的系统临时文件 (10)2.10 检查磁带库和磁带使用情况 (10)2.11 修改用户口令 (11)2.12 清洗磁带机 (11)2.13 检索操作系统日志 (12)3系统启动与关闭 (13)3.1 系统的运行架构 (13)3.2 系统的启动 (13)3.3 系统的关闭 (14)4系统部署 (17)4.1 生成部署包 (17)4.2 程序部署 (18)5重要的系统参数配置 (21)5.1 C ONFIG.PROPERTIES................................................................... 错误!未定义书签。

5.2 SPRING-MISTASK.XML................................................................ 错误!未定义书签。

6日志查看 (22)6.1 WAS日志 (22)6.2 DB2日志 (22)7查系统是否正确运行 (24)8系统管理员维护人员信息日志 (25)9查看表空间及附件硬盘的使用情况 (26)9.1 D B2表空间查看 (26)9.2 115服务器附件文件占用情况 (26)10服务停启顺序 (28)1概述本手册给出了湖南省移动公司的报账平台系统及报账平台外围系统的运维操作细则。

手册从主机系统、应用系统以及数据库系统三个方面对任务项进行组织,对应章节包括第错误!未找到引用源。

Linux系统运维基础管理命令总结

Linux系统运维基础管理命令总结

Linux系统运维基础管理命令总结1、查看系统负载命令:w、uptime[root@localhost ~]# w23:38:24 up 33 days, 1:03, 1 user, load average: 0.00, 0.01, 0.05USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATroot pts/0192.168.56.1 Fri16 0.00s 0.95s 0.00s w[root@localhost ~]# uptime23:38:38 up 33 days, 1:03, 1 user, load average: 0.00, 0.01, 0.05load average:1分钟内系统的平均负载值,5分钟内系统的平均负载值,15分钟内系统的平均负载值这个值的意义是,单位时间段内CPU活动进程数。

这个值越⼤就说明服务器压⼒越⼤。

⼀般情况下这个值不超过服务器cpu数量就没有关系。

假设服务器的cpu数量为8,那么这个值若⼩于8,就说明当前服务器没有压⼒,否则就要关注⼀下了。

那么如何查看服务器有⼏个cpu呢?[root@localhost ~]# cat /proc/cpuinfo |grep processor #查看cpu核数processor : 0[root@localhost ~]# cat /proc/cpuinfo |grep processor |wc -l1[www@wef66fxcdgkbsdsd790fd9z ~]$ cat /proc/cpuinfo |grep processor|wc -l #线上环境使⽤了4核42、vmstat详解[root@localhost ~]# vmstat 15procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r b swpd free buff cache si so bi bo in cs us sy id wa st201540126124060036400014120199000015401261240600364000016528600100002015401261240600364000015228000100001015401261240600364000015727601990010154012612406003640000166281109900①procs 显⽰进程相关信息r:表⽰运⾏和等待cpu时间⽚的进程数。

Informix运维手册

Informix运维手册

检查方法 onstat esqlБайду номын сангаас-V
onstat -
onstat onstat -l onstat -m onstat -m onstat -m onstat -m onstat -l onstat -m onstat -m onstat -d onstat -c 巡检脚本 onstat -d 巡检脚本 巡检脚本 巡检脚本 巡检脚本 onstat -p onstat -p onstat -p onstat -p onstat -p onstat -p onstat -g seg onstat -g seg onstat -g ath onstat -c onstat -c onstat -F onstat -F 巡检脚本 onstat -c 巡检脚本 onstat -c onstat -m onstat -g sql
该动作对性能有一定影响,特别是大表
参看advanced performance tuning and moni 参看advanced performance tuning and moni 参看advanced performance tuning and moni 参看advanced performance tuning and moni 参看advanced performance tuning and moni 参看advanced performance tuning and moni 参看advanced performance tuning and moni 参看advanced performance tuning and moni 参看advanced performance tuning and moni 参看advanced performance tuning and moni 参看advanced performance tuning and moni 参看advanced performance tuning and moni 参看advanced performance tuning and moni
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中信国际系统巡检表
报告周期:
报告提供:
提交人员:
提交时间:
文档版本页
修改记录
日期 版本
作者/修改者
修订类型
描述
文件状态: 【 】草 稿 【 】修 改 稿
【√】正式发布 公 司 保 密 等 级 作 者
最后完成日期 复核人
最后复核日期 审核人
最后审核日期
1.填报信息
事件等级划分附录:
2.事件管理
2.1.待处理事件记录
2.2.本日事件记录
3.操作日志
4.巡视、维护内容
4.1.LINUX操作系统
5.1.1 系统信息检查
查看命令及结果:
1.用uname –a来查看操作系统版本
2.用hostname查看主机名
3.主机网络配置:ifconfig –a
4.用date查看主机日期时间
5.用java –version查看java版本
网络信息
5.1.2性能检查
查看命令及结果:
1.用top查看CPU占用率、内存使用率、内存交换区使用率、进程占用的资源等信息。

CPU占用率、内存使用
率、内存交换区使用率
各进程占用资源
情况
2.用df –h查看文件系统占用率
3.用uptime查看CPU负载情况
4.系统I/O情况:iostat 1 3
备注:
avg-cpu段:
%user: 在用户级别运行所使用的CPU的百分比
%nice:优先进程消耗的CPU时间,占所有CPU的百分比
%system: 在系统级别(kernel)运行所使用CPU的百分比
%iowait: CPU等待硬件I/O时,所占用CPU百分比
%steal: 管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比%idle: CPU空闲时间的百分比
Device段:
tps: 每秒钟发送到的I/O请求数
Blk_read /s: 每秒读取的block数
Blk_wrtn/s: 每秒写入的block数
Blk_read: 启动到现在读入的block总数
Blk_wrtn: 启动到现在写入的block总数
5、系统资源使用情况:vmstat
[root@train ~]# vmstat
vmstat 110 (每隔1秒刷新一次,刷新10次)
备注:
r: 等待运行的进程数b: 处在非中断睡眠状态的进程数
si: 从磁盘交换到内存的交换页数量,单位:KB/秒
so: 从内存交换到磁盘的交换页数量,单位:KB/秒
bi: 发送到块设备的块数,单位:块/秒
bo: 从块设备接收到的块数,单位:块/秒
一般情况下:r,b基本情况下为0,如果fre,将会出现连续不断的页面调度,将导致系统性能问题。

对于page列,re,pi,po,cy维持于比较稳定的状态,PI率不超过5。

在内存相对紧张的环境下pagein会强制对不同的页面进行steal操作。

如果系统正在读一个大批的永久页面,你也许可以看到po和pi列会出现不一致的增长,这种情景并不一定表明系统负载过重,但是有必要对应用程序的数据访问模式进行见检查。

在稳定的情况下,扫描率和重置率几乎相等,在多个进程处理使用不同的页面的情况下,页面
会更加不稳定和杂乱,这时扫描率可能会比重置率高出。

faults列sy,cs会不断跳跃,这里没有明确的限制,唯一的就是这些值最少大于100。

5.1.3安全检查
查看命令及结果:
1.用who查看当前登录用户
2.用less /var/log/boot.log查看系统重启情况
3.用less /var/log/messages查看系统日志
4.系统账户检查more /etc/passwd、more /etc/shadow
5.系统登录情况检查的命令是lastlog,信息保存在文件/var/log/lastlog中
6.系统运行时间:uptime
5.1.4硬件信息
查看命令及结果:
1.用dmidecode查看硬件信息
2.用dmesg查看硬件启动信息。

相关文档
最新文档