linux运维宝典.docx
- 文档编号:26502236
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:17
- 大小:27.99KB
linux运维宝典.docx
《linux运维宝典.docx》由会员分享,可在线阅读,更多相关《linux运维宝典.docx(17页珍藏版)》请在冰豆网上搜索。
linux运维宝典
1.删除0字节文件
find-typef-size0-execrm-rf{}\;
2.查看进程
按内存从大到小排列
ps-e-o"%C:
%p:
%z:
%a"|sort-k5-nr
3.按cpu利用率从大到小排列
ps-e-o"%C:
%p:
%z:
%a"|sort-nr
4.查看cache里的URL
grep-r-ajpg/data/cache/*|strings|grep"http:
"|awk-F'http:
''{print"http:
"$2;}'
5.查看http的并发请求数及其TCP连接状态:
netstat-n|awk'/^tcp/{++S[$NF]}END{for(ainS)printa,S[a]}'
6.Sed替换
sed-i'/Root/s/no/yes/'/etc/ssh/sshd_configsed在这个文里Root的一行,匹配Root一行,将no替换成yes.
7.1.如何杀掉mysql进程:
psaux|grepmysql|grep-vgrep|awk'{print$2}'|xargskill-9(从中了解到awk的用途)
pgrepmysql|xargskill-9[网友:
&FROST]
killall-TERMmysqld
kill-9`cat/usr/local/apache2/logs/httpd.pid`试试查杀进程PID
8.显示运行3级别开启的服务:
ls/etc/rc3.d/S*|cut-c15-
(从中了解到cut的用途,截取数据)
9.如何在编写SHELL显示多个信息,用EOF
cat< +--------------------------------------------------------------+ |===WelcometoTunoffservices===| +--------------------------------------------------------------+ EOF 10.for的巧用(如给mysql建软链接) cd/usr/local/mysql/bin foriin* doln/usr/local/mysql/bin/$i/usr/bin/$i done 11.取IP地址: ifconfigeth0|grep"inetaddr: "|awk'{print$2}'|cut-c6- 或者 ifconfig|grep'inetaddr: '|grep-v'127.0.0.1'|cut-d: -f2|awk'{print$1}' 12.内存的大小: free-m|grep"Mem"|awk'{print$2}' 13.查看所有的ESTABLISHED连接状态的IP: 端口 netstat-an-t|grep": 80"|grepESTABLISHED|awk'{printf"%s%s\n",$5,$6}'|sort 14.查看Apache的并发请求数及其TCP连接状态: netstat-n|awk'/^tcp/{++S[$NF]}END{for(ainS)printa,S[a]}' 15.因为同事要统计一下服务器下面所有的jpg的文件的大小,写了个shell给他来统计.原来用xargs实现,但他一次处理一部分,搞的有多个总和....,下面的命令就能解决啦. find/-name*.jpg-execwc-c{}\;|awk'{print$1}'|awk'{a+=$1}END{printa}' CPU的数量(多核算多个CPU,cat/proc/cpuinfo|grep-cprocessor)越多,系统负载越低,每秒能处理的请求数也越多。 ------------------------------------------------------------------------------- 16CPU负载#cat/proc/loadavg 检查前三个输出值是否超过了系统逻辑CPU的4倍。 18CPU负载#mpstat11 检查%idle是否过低(比如小于5%) 19内存空间#free 检查free值是否过低也可以用#cat/proc/meminfo 20swap空间#free 检查swapused值是否过高如果swapused值过高,进一步检查swap动作是否频繁: #vmstat15 观察si和so值是否较大 21磁盘空间#df-h 检查是否有分区使用率(Use%)过高(比如超过90%)如发现某个分区空间接近用尽,可以进入该分区的挂载点,用以下命令找出占用空间最多的文件或目录: #du-cks*|sort-rn|head-n10 22磁盘I/O负载#iostat-x12 检查I/O使用率(%util)是否超过100% ▪rrqm/s: 队列中每秒钟合并的读请求数量 ▪wrqm/s: 队列中每秒钟合并的写请求数量 ▪r/s: 每秒钟完成的读请求数量 ▪w/s: 每秒钟完成的写请求数量 ▪rsec/s: 每秒钟读取的扇区数量 ▪wsec/s: 每秒钟写入的扇区数量 ▪avgrq-sz: 平均请求扇区的大小 ▪avgqu-sz: 平均请求队列的长度 ▪await: 平均每次请求的等待时间 ▪svctm: 平均每次请求的服务时间 ▪util: 设备的利用率 23网络负载#sar-nDEV 检查网络流量(rxbyt/s,txbyt/s)是否过高 24网络错误#netstat-i 检查是否有网络错误(dropfifocollscarrier)也可以用命令: #cat/proc/net/dev 25网络连接数目#netstat-an|grep-E“^(tcp)”|cut-c68-|sort|uniq-c|sort-n 26进程总数#psaux|wc-l 检查进程个数是否正常(比如超过250) 27可运行进程数目#vmwtat15 列给出的是可运行进程的数目,检查其是否超过系统逻辑CPU的4倍 28进程#top-id1 观察是否有异常进程出现 29网络状态检查DNS,网关等是否可以正常连通 30用户#who|wc-l 检查登录用户是否过多(比如超过50个)也可以用命令: #uptime 31系统日志#cat/var/log/rflogview/*errors 检查是否有异常错误记录也可以搜寻一些异常关键字,例如: #grep-ierror/var/log/messages #grep-ifail/var/log/messages #egrep-i'error|warn'/var/log/messages查看系统异常 32核心日志#dmesg 检查是否有异常错误记录 33系统时间#date 检查系统时间是否正确 34打开文件数目#lsof|wc-l 检查打开文件总数是否过多 35日志#logwatch–print配置/etc/log.d/logwatch.conf,将Mailto设置为自己的email地址,启动mail服务(sendmail或者postfix),这样就可以每天收到日志报告了。 缺省logwatch只报告昨天的日志,可以用#logwatch–print–rangeall获得所有的日志分析结果。 可以用#logwatch–print–detailhigh获得更具体的日志分析结果(而不仅仅是出错日志)。 36.杀掉80端口相关的进程 lsof-i: 80|grep-v"PID"|awk'{print"kill-9",$2}'|sh 37.清除僵死进程。 ps-eal|awk'{if($2=="Z"){print$4}}'|kill-9 38.tcpdump抓包,用来防止80端口被人攻击时可以分析数据 #tcpdump-c10000-ieth0-ndstport80>/root/pkts 39.然后检查IP的重复数并从小到大排序注意"-t\+0"中间是两个空格 #lesspkts|awk{'printf$3"\n"'}|cut-d.-f1-4|sort|uniq-c|awk{'printf$1""$2"\n"'}|sort-n-t\+0 40.查看有多少个活动的php-cgi进程 netstat-anp|grepphp-cgi|grep^tcp|wc-l 41.利用iptables对应简单攻击 netstat-an|grep-vLISTEN|awk‘{print$5}’|grep-v127.0.0.1|grep-v本机ip|sed“s/: : ffff: //g”|awk‘BEGIN{FS=”: ”}{Num[$1]++}END{for(iinNum)if(Num>8){printi}}’|grep‘[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}’|xargs-i[]iptables-IINPUT-s[]-jDROP Num>8部分设定值为阀值,这条句子会自动将netstat-an中查到的来自同一IP的超过一定量的连接的列入禁止范围。 本机ip改成你的服务器的ip地址 选择性的删除某些行: #删除所有空白行(类似于"grep'.'") awkNF awk'/./' #删除重复连续的行(模拟"uniq") awk'a! ~$0;{a=$0}' #删除重复的、非连续的行 awk'! a[$0]++'#最简练 awk'! ($0ina){a[$0];print}'#最有效 查询系统状态的指令集: cat文件名一屏查看文件内容 more文件名分页查看文件内容 less文件名可控分页查看文件内容 grep-l-r字符串路径显示包含字符串的文件名 grep-L-r字符串路径显示不包含字符串的文件名 lsof-p进程号(例如: lsof-p2428)查看进程打开的文件 lsofabc.txt显示开启文件abc.txt的进程 lsof-i: 22显示22端口现在运行什么程序 lsof-cnsd显示nsd进程现在打开的文件 nohup程序&在后台运行程序,退出登录后,并不结束程序 strace-f-F-ooutfile arpingIP地址根据IP查网卡地址 nmblookup-AIP地址根据IP查电脑名 linux删除特殊文件名的文件 假设Linux系统中有一个文件名叫“-ee”,如果我们想对它进行操作,例如要删除它,按照一般的删除方法在命令行中输入rm-ee命令,界面会提示我们是“无效选项”(invalidoption),原来由于文件名的第一个字符为“-”,Linux把文件名当作选项了,我们可以使用“–”符号来解决这个问题,输入“rm—-ee”命令便可顺利删除名为“-ee”的文件。 如果是其他特殊字符的话可以在特殊字符前加一个“”符号,或者用双引号把整个文件名括起来。 如,/usr/lcoal/目录下有个--exclude文件,通过命令 rm----exclude 删除此文件 一句话快速查找PHP木马的方法 find./-name"*.php"-typef-print0|xargs-0egrep"(phpspy|c99sh|milw0rm|eval\(base64_decode|eval\(gzinflate\(base64_decode|eval\(gzinflate\(str_rot13\(base64_decode|spider_bc)"|awk-F: '{print$1}'|sort|uniq 如何删去重复行并保持顺序不变? awk'{if(! seen[$0]++){print$0;}}'$file_path perl-lne'printunless$seen{$_}++'$file_path 1、查看某文件的一部分 如果你只想看文件的前5行,可以使用head命令, 如: head-5/etc/passwd 如果你想查看文件的后10行,可以使用tail命令, 如: tail-10/etc/passwd 查看文件中间一段,可以使用sed命令 如: sed–n'5,10p'/etc/passwd这样你就可以只查看文件的第5行到第10行 2、将file.txt里的123改为456 方法1 sed's/123/456/g'file.txt>file.txt.new修改的保存到其它文件 sed-i's/123/456/g'file.txt直接修改原文件 方法2 vifile.txt 输入命令: : %s/123/456/g 注意: 如果替换的文件有特殊符号如/就要用来取消。 例: sed-i's//usr/local/apache2/htdocs//var/www/html/g'/usr/local/apache2/conf/httpd.conf 如果只是下原有的行后添加就用& 例: sed-i's/DirectoryIndexindex.htmlindex.html.var/&index.htmindex.php/g'/usr/local/apache2/conf/httpd.conf 3、echo典型应用 echo"abcdefg"|perl-lne'{$a=reverse($_);print$a;}'把一个字符串翻转 echobottle|rev把一个字符串翻转 [文件目录管理] 1、删除几天以前的所有东西(包括目录名和目录中的文件) 1)find.-ctime+3-execrm-rf{}; 2)find./-mtime+3-print|xargsrm-f–r 2、在多级目录中查找某个文件的方法 1)find/dir-namefilename.ext 2)du-a|grepfilename.ext 3)locatefilename.ext 3、删除软硬连接注意点 删除软件连接的时候一定要记得不要在删除的文件夹后加一斜杠, rm-ffilename/ 会说这是一个文件夹不能删除 rmfilename 会提示说是否要删除这个连接。 如果用的第一种可能会把其它文件都删除 4、删除目录中含输入关键字的文件 find/mnt/ebook/-typef-execgrep"在此输入关键字"{};-print-execrm{}; 5、在当前目录下解压rpm文件 catkernel-ntfs-2.4.20-8.i686.rpm|rpm2cpio|pax–r 6、用命令清空Root回收站中的文件 cd/var/.Trash-root rm-rf* [系统与安全] 1、让用户的密码必须有一定的长度,并且符合复杂度 vi/etc/login.defs,修改PASS_MIN_LEN 2、用dat查询昨天的日期 date--date='yesterday' 3、修改系统时 1)设置你的时区: timeconfig里选择Asia/Shanghai(如果你位于GMT+8中国区域) 2)与标准时间服务器校准: ntpdatetime.nist.gov date-s“2003-04-14cst”,cst指时区,时间设定用date-s18: 10 修改后执行clock-w写到CMOS 3)将当前软件系统时间写入硬件时钟: hwclock–systohc 4、改变redhat的系统语言/字符集 修改/etc/sysconfig/i18n文件,如 LANG="en_US",xwindow会显示英文界面, LANG="zh_CN.GB18030",xwindow会显示中文界面。 还有一种方法 cp/etc/sysconfig/i18n$HOME/.i18n vi$HOME/.i18n文件,如 LANG="en_US",xwindow会显示英文界面, LANG="zh_CN.GB18030",xwindow会显示中文界面。 这样就可以改变个人的界面语言,而不影响别的用户 5、查看系统信息 cat/proc/cpuinfo-CPU(i.e.vendor,Mhz,flagslikemmx) cat/proc/interrupts-中断 cat/proc/ioports-设备IO端口 cat/proc/meminfo-内存信息(i.e.memused,free,swapsize) cat/proc/partitions-所有设备的所有分区 cat/proc/pci-PCI设备的信息 cat/proc/swaps-所有Swap分区的信息 cat/proc/version-Linux的版本号相当于uname-r uname-a-看系统内核等信息 6、让linux自动同步时间 vi/etc/crontab 加上一句: 0001**rootrdate-stime.nist.gov 7、如何防止某个关键文件被修改 在Linux下,有些配置文件是不允许任何人(包括root)修改的。 为了防止被误删除或修改 可以设定该文件的“不可修改位(immutable)”。 命令如下: #chattr+i/etc/fstab 如果需要修改文件则采用下面的命令: #chattr-i/etc/fstab [管理与网络] 1、lsof用法小全 lsofabc.txt显示开启文件abc.txt的进程 lsof-i: 22知道22端口现在运行什么程序 lsof-cnsd显示nsd进程现在打开的文件 lsof-ggid显示归属gid的进程情况 lsof+d/usr/local/显示目录下被进程开启的文件 lsof+D/usr/local/同上,但是会搜索目录下的目录,时间较长 lsof-d4显示使用fd为4的进程 lsof-i[i]用以显示符合条件的进程情况 语法: lsof-i[46][protocol][@hostname|hostaddr][: service|port] 46-->IPv4orIPv6 protocol-->TCPorUDP hostname-->Internethostname hostaddr-->IPv4位置 service-->/etc/service中的servicename(可以不止一个) port-->端口号(可以不止一个) 例子: TCP: 25-TCPandport25 @1.2.3.4-InternetIPv4hostaddress1.2.3.4tcp@ohaha.ks.edu.tw: ftp-TCPprotocolhost: ohaha.ks.edu.twservicename: ftp lsof-n不将IP转换为hostname,预设是不加上-n参数 例子: lsof-itcp@ohaha.ks.edu.tw: ftp-n lsof-p12看进程号为12的进程打开了哪些文件 2、grep不显示本身进程 #ps-aux|grephttpd|grep-vgrep grep-vgrep可以取消显示你所执行的grep本身这个进程,-v参数是不显示所列出的进程名 3、查看本机IP ifconfig|grep"inet"|cut-c0-36|sed-e's/[a-zA-Z: ]//g' hostname–i 4、查看有多少活动的Httpd进程 #! /bin/sh while(true) do pstree|grep"*[httpd]$"|sed's/.*-([0-9][0-9]*)*[httpd]$/1/' sleep3 done 同样可以引用到其它的进程 5、设置com1口,让超级终端通过com1口进行登录 第一步: 确认有/sbin/agetty,编辑/etc/inittab,添加 7: 2345: respawn: /sbin/agetty/dev/ttyS09600 9600bps是因为连路由器时缺省一般都是这种速率,也可以设成 19200、38400、57600、115200 第二步: 修改/etc/securetty,添加一行: ttyS0,确保root用户能登录 第三步: 重启机器,就可以拔掉鼠标键盘显示器(启动时最好还是要看看输出信息)了 6、查找或删除正在使用某文件的进程 fuserfilename fuser-kfilename 7、已知网络中一个机器的硬件地址,如何知道它所对应的IP地址 在Linux下,假定要查“00: 0A: EB: 27: 17: B9”这样一个硬件地址所对应的IP地址,可以使 用以下命令: #cat/proc/net/arp|grep00: 0A: EB: 27: 17: B9 192.168.2.540x10x600: 0A: EB: 27: 17: B9*eth2 另外,还可以用“arp-a”命令查询: #arp–a|grep00: 0A: EB: 27: 17: B9 (192.168.2.54)at00: 0A: EB: 27: 17: B9[ether]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 宝典
![提示](https://static.bdocx.com/images/bang_tan.gif)