当前位置: > Linux命令 >

腾讯开放平台的一些linux常用命令

时间:2014-07-28 10:44来源:linux.it.net.cn 作者:it

1. 什么是linux服务器load average?

Load是用来度量服务器工作量的大小,即计算机cpu任务执行队列的长度,值越大,表明包括正在运行和待运行的进程数越多。
参考资料:http://en.wikipedia.org/wiki/Load_average 
 

 

2. 如何查看linux服务器负载

可以通过w,top,uptime,procinfo命令,也可以通过/proc/loadavg文件查看。 
 

 

3. 服务器负载高怎么办?

服务器负载(load/load average)是根据进程队列的长度来显示的。
当服务器出现负载高的现象时(建议以15分钟平均值为参考),可能是由于CPU资源不足,I/O读写瓶颈,内存资源不足等原因造成,也可能是由于CPU正在进行密集型计算。
建议使用vmstat -x,iostat,top命令判断负载过高的原因,然后找到具体占用大量资源的进程进行优化处理。 
 

 

4. 如何产看服务器内存使用率?

可以通过free,top(执行后可通过shitf+m对内存排序),vmstat,procinfo命令,也可以通过/proc/meminfo文件查看。 
 

 

5. 如何查看单个进程占用的内存大小?

可以使用top -p PID,pmap -x PID,ps aux|grep PID命令,也可以通过/proc/$process_id(进程的PID)/status文件查看,例如/proc/7159/status文件。 
 

 

6. 无法从linux服务器A登录到服务器B怎么办?

请开发者首先确认服务器A和B是属于同一个应用,不同应用无法交叉登录。
1. 当服务器A无法登录服务器B时,可以使用ping IP和telnet IP 36000命令确认服务器B是否死机,ssh服务是否正常。
如果有异常,登录open.qq.com管理中心重启服务器(详细操作说明见:CVM_V2申请和管理#3.2 服务器重启)。 
2. 如果可以通过客户端直接访问服务器B,但是不能从服务器A登录服务器B,请通过企业QQ联系运维支持协助定位。 
 

 

7. 如何查看正在使用的服务和端口?

可以使用netstat -tunlp,netstat -antup,lsof -i:PORT命令查看。 
 

 

8. 如何查看服务器进程信息?

可以使用ps auxww|grep PID,ps -ef,lsof -p PID,top -p PID命令查看。 
 

 

9. 如何杀死进程?

可以使用kill -9 PID(进程号),killall 程序名(比如killall cron)来杀死进程。
如果要杀死的是僵尸进程,则需要杀掉进程的父进程才有效果,命令为: kill -9 ppid(ppid为父进程ID号,可以通过ps -o ppid PID查找,例如ps -o ppid 32535)。 
 

 

10. 如何查找僵尸进程?

可以使用top命令查看僵尸进程(zombie)的总数,使用ps -ef | grep defunct | grep -v grep查找具体僵尸进程的信息。 
 

 

11. 如何在内网服务器间传输数据?

同一应用下的不同机器,可以通过如下命令实现文件传输:

scp -P port(使用36000端口) /home/user/localfilename(本地文件路径) user(使用appid)@serverip:/home/user/removefilename(目标文件路径)

rsync -e 'ssh -p port(使用36000端口) -q' /home/user/localfilename (本地文件路径) user(使用appid)@serverip:/home/user/removefilename(目标文件路径) 
 

 

12. 为什么启动不了服务器端口?

服务器端口的启动监听,需要从操作系统本身以及应用程序查看。
linux操作系统1024以下的端口只能由root用户启动,即需要先运行sudo su –获取root权限后再启用服务端口。
应用程序问题,建议通过应用程序启动日志来排查失败原因,例如端口冲突(腾讯服务器系统使用端口不能占用,比如36000),配置问题等。 
 

 

13. 常用的linux服务器性能查看命令有哪些?

命令名称 说明
top 进程监控命令,用来监控系统的整体性能。

可以显示系统负载,进程,cpu,内存,分页等信息,常用shift+m和shift+p来按memory和cpu使用对进程进行排序。

vmstat 系统监控命令,重点侧重于虚拟内存,也可以监控cpu,进程,内存分页以及IO的状态信息。

例如,vmstat 3 10,每隔3秒输出结果,执行10次。

iostatc 用于输出cpu状态和IO状态的工具,可以详细展示系统的IO信息。

例如iostat -dxmt 10,每10秒以MB的格式输出IO的详细信息。

df 用来检查系统的磁盘空间占用状况。

例如:df -m,以MB为单位展现磁盘使用状况。

lsof 列举系统中被打开的文件,由于linux是以文件系统为基础,此命令在系统管理中很有帮助。

例如:
lsof -i:36000,显示使用36000端口的进程 
lsof -u root,显示以root运行的程序 
lsof -c php-fpm,显示php-fpm进程打开的文件 
lsof php.ini,显示打开php.ini的进程。

ps 进程查看命令,可以用来显示进程的详细信息。

常用命令参数组合为,ps -ef,ps aux,推荐使用ps -A -o来自定义输出字段。
例如:
ps -A -o pid,stat,uname,%cpu,%mem,rss,args,lstart,etime |sort -k6,6 -rn,按所列字段输出并以第六个字段进行排序 
ps -A -o comm |sort -k1 |uniq -c|sort -k1 -rn|head,列出运行实例最多的进程。


其他常用的命令和文件,free -m,du,uptime,w,/proc/stat,/proc/cpuinfo,/proc/meminfo。 
参考资料:http://en.wikipedia.org/wiki/Template:Unix_commands,http://www.linuxmanpages.com/ 
 

 

 

14. Cron不生效怎么办?

排查步骤如下:
1. 确认crontab是否正常运行。
可以运行命令crontab -e添加如下测试条目*/1 * * * * /bin/date >> /tmp/crontest 2>&1 &,然后观察/tmp/crontest文件。 
如果有问题,建议使用ps aux|grep cron查找cron的pid,kill -9 PID结束cron进程,然后通过/etc/init.d/cron start重新启动cron。 

2. 确认cron条目中的脚本路径为绝对路径。
3. 查看运行cron的用户帐号是否正确,同时查看/etc/cron.deny中是否包含此账户。
4. 检查脚本的执行权限,脚本目录以及日志的文件权限。
5. 建议通过后台方式运行脚本,在脚本条目后添加“&”,例如,*/1 * * * * /bin/date >> /tmp/crontest 2>&1 & 
 

 

15. 如何设置opensuse服务器开机任务?

Linux内核启动顺序为:
/sbin/init进程启动,
然后依次执行init初始脚本,
运行级别脚本/etc/rc.d/rc*.d,*号值等于运行模式,可以在/etc/inittab中查看,
最后是/etc/rc.d/rc.local。
 

如果需要配置开机任务,可以在/etc/rc.d/rc*.d中的S**rclocal文件配置,也可以在/etc/rc.d/rc.local中配置。 
 

 

26. 为什么服务器硬盘只读?

硬盘只读的常见原因如下:
1. 磁盘空间满
可以通过df -m命令查看磁盘使用情况,然后删除多余的文件释放磁盘空间(非第三方文件不建议删除,如果需要请联系企业QQ确认); 
2. 磁盘inode资源占用完
可以通过df -i命令查看,确认相关的进程; 
3. 硬件故障。
 

如果hosting应用通过上述方式仍无法确认原因,请通过企业QQ联系运维支持协助定位。 
 

 

17. 如何查看linux系统日志?

系统级别的日志文件存放路径为/var/log。
常用的系统日志为/var/log/messages 。
 

 

18. 如何查找文件系统大文件?

可以首先通过df命令查看磁盘分区使用情况,比如df -m;
然后:
通过du命令查看具体文件夹的大小,比如du -sh ./*,du -h --max-depth=1|head -10;
使用ls命令列出文件以及大小,比如ls -lSh;
另外,也可以通过find命令直接查看特定目录下的文件大小,比如find / -type f -size +10M -exec ls -lrt {} ; 
 

 

19. 如何查看服务器操作系统版本?

可以通过下列命令查看系统版本:
uname -a,cat /proc/version,cat /etc/issue 
 

 

20. 如何重启服务器?

方式1:
登录open.qq.com管理中心重启服务器(详细操作说明见:CVM_V2申请和管理#3.2 服务器重启)。 

方式2:如果方式1不生效,可以尝试在服务器上以root运行reboot命令进行重启。 
 

 

 

21. 为什么linux终端显示中文会出现乱码?

服务器本身没有对显示语言有限制,如果是终端软件的影响中文的显示
可以尝试调整 选项-会话选项-外观(secureCRT设置,其他版本软件请查找相关设置);
如果是纯Linux shell出现乱码,请使用export命令查看用户环境变量,查看LANG,LC_CTYPE等环境变量设置。
 

 

22. 如何设置通过SecureCRT连接CVM服务器的超时时间?

可以通过如下设置,使SecureCRT连接CVM时,不断开连接:
打开secureCRT选项(Options),选择会话选项(Session Opetions),点击终端(Terminal),在右侧反空闲(Anti-idle)的框中勾选发送协议NO-OP(Send protocol NO-OP),时间设置为每180秒(every 180 seconds)。 
 

 

24. 如何获得CVM的root权限?

详见:root权限说明。

 

网络相关

 

1. 访问应用慢怎么办?

首先开发者需确认访问慢的原因,包括用户原因,网络原因,服务端原因。
1. 用户原因建议从以下方面排查:
用户电脑性能,电脑病毒,DNS缓存和设置,上网代理,防火墙设置,浏览器版本和插件等,可以通过换电脑测试。
 

2.网络原因建议从以下方面排查:
确定用户的IP以及网络运营商,域名解析是否正确,是否存在跨网,局域网额外限制,到其他公网服务是否正常,到相关服务器或网络中间路由节点的网络延迟,有无丢包,小运营商网络不稳定等。
建议通过异地正常网络使用相同帐号测试。
 

3. 服务端问题建议从以下方面排查:
平台问题,如CDN异常,请求转发异常等;服务端问题,如服务器性能,进程状况,程序异常等。
 

排查时,请配合使用如tcpdump,tracert等各种命令,以及httpwatch,wireshark等抓包工具。
如通过上述技术手段还无法解决,请提供以上排查信息和数据,通过企业QQ联系运维支持协助定位。 
 

 

2. 常用的网络排障命令?

命令名称 说明
Ipconfig/ifconfig 显示计算机TCP/IP的详细配置,包括DNS信息,例如ipconfig /all,ipconfig /displaydns。
 
Ping 包发送命令,可以模拟诊断延迟,丢包,测试网络状况,例如linux:ping 10.1.1.1 -c 10 -s 800,ping 10.1.1.1 -i 0.5,windows:ping qq.com -t,ping 10.1.1.1 -n 8 -l 800。
Tracert/traceroute 跟踪路由,显示数据包到达目的的路径及各节点的时间,可以用来发现运营商节点问题和跨网问题等,如tracert qq.com。
Telnet 远程登录服务命令,主要用于测试端口状态,例如telnet 10.1.1.1 8001。
Nslookup 域名查询工具,主要用来查看域名解析是否正确。
Netstat wc,netstat -an等。


 

 

3. 常用的网络抓包工具?

工具名称 说明
Tcpdump 适用于linux系统。

网络数据采集分析工具,可以对网络数据包进行截获和分析。
通过设定参数来实现对网络数据包的各种监控与分析。
例如,tcpdump -i any -nn tcp and port 443,tcpdump -i any "host 10.1.1.1" -n,tcpdump -s 0 -nX -i eth0 host 113.108.20.23等。

Httpwatch 适用于windows系统。

强大的网页数据分析工具,集成在IE浏览器,也可支持firefox,可以用来诊断前台接口调试,CDN下载资源慢和页面响应慢等问题。
建议使用专业版。

Fiddler 适用于windows系统。

独立的网络抓包工具,可监听所有电脑和互联网的http通讯,可以用来调试和诊断web服务和本地http的交互等问题。

Wireshark 适用于windows和linux系统。

网络封包分析软件,可以实时分析所有支持协议的通讯数据


 

 

4. 如何查看IP来源及所属运营商?

请通过以下网站查询:
Ip.qq.com, ip138.com 
 

 

5. 如何修改windows本地dns设置?

方法一:
WinXP:
右键网上邻居—>属性(R)—>右键本地链接—>属性(P),双击Internet协议版本4(TCP/IPV4),修改本地DNS设定。 
Win7:
开始菜单—>控制面板—>网络和共享中心—>本地连接—>属性(P),双击Internet协议版本4(TCP/IPV4),修改本地DNS设定。 

方法二:
开始—>运行—>输入CDM进入到命令模式,输入
命令一:netsh interface ip set dns "网卡名" static 主DNS, 
命令二:netsh interface ip set dns "网卡名" static 辅DNS编号(例如:主DNS设定:netsh interface ip set dns "本地连接" static 8.8.8.8,辅DNS设定:netsh interface ip set dns "本地连接" static 8.8.8.8 2)。 
 

 

6. 如何清理dns缓存?

方法一:
开始菜单—>管理工具—>服务,重启DNS Client和DHCP client两项服务。
 

方法二:
开始菜单—>运行—>输入CDM进入命令模式,输入ipconfig/flushdns,回车执行,提示成功即可。 
 

 

7. 端口不通怎么办?

服务端:
确认是否有监听对应的端口,是否有做访问限制。 

客户端:
测试连接方式是否正常,例如TELNET只能测试TCP端口,UDP端口可以使用NETCAT等工具进行测试.可以通过wireshark和tcpdump等工具查看具体的数据包走向,明确定位问题。 

其他:
腾讯机房禁止不同应用的机器相互访问,如果同一应用内端口无法正常访问,请通过企业QQ联系运维支持查询防火墙设置。 
 

 

8. Ping不通怎么办?

请确认网络是否可用,域名解析是否正确,服务端是否禁止ICMP包,使用tracert/traceroute协助确定网络故障。
如通过上述技术手段还无法解决,请提供以上排查信息和数据,请通过企业QQ联系运维支持协助定位。 
 

 

9. Telnet不通怎么办?

Telnet不通,指的是telnet之后没有任何返回,如果直接返回信息,则表示telnet是通的,但是请求被直接拒绝。

故障排查步骤:
在telnet源上,通过ping测试网络是否正常;
在目标机器上,确认服务器是否设置了禁止telnet(默认没有设置),是否监听了正确的IP和端口,可以通过telnet 127.0.0.1测试本地telnet服务;
对于hosting应用,如果通过以上技术手段还无法解决问题,请提供相应信息和数据,请通过企业QQ联系运维支持排查腾讯防火墙设置。

 

 

10. Tracert不通怎么办?

tracert不通,指的是从某一节点开始,全部是*,并且无法到达目的,如果只是中间某一个节点出现*,则只能说明该节点禁止被tracert。

故障排查步骤:
从tracert的第一个节点开始,到最后一个可访问节点,查询各节点IP的所属运营商,可以判断网络访问路径以及运营商,然后定位是运营商问题,还是目标服务的问题。
注意,小运营商跨网问题,需要自助向运营商反馈。

 

11. 如何测试udp端口是否正常?

Udp包的发送和监听可以使用如下方法:
发送udp包,使用netcat命令,例如netcat -v -u 10.1.1.1 8001,同时使用tcpdump或者netcat监听udp请求。

 

12. 如何判断是否受到DDOS网络攻击?

可以结合以下现象初步判断是否受到DDOS攻击:
机器入流量出现陡增,同时出流量急剧下降; 
服务器出现大量SYN,TIME_WAIT等异常连接( netstat –a |awk '{print $6}' |sort|uniq -c|sort -gk 1);
某些IP访问频率过高,占用大量资源(netstat -tun|awk '{print $5}'|uniq -c|sort -r),导致服务不正常等。

注:腾讯已经对常见的攻击进行了监控和防范,开发者也可结合自身逻辑在服务器端限制特定IP访问。

 

13. 服务器如何同时接入电信、联通、移动三网?

应用为了兼顾电信、联通、移动的用户,一般都需要实现三网接入,让三个运营商的用户进入都不需要跨网,保证应用质量。
腾讯开放平台提供了TGW域名接入方案(详见:域名接入),开发者只需要通过域名绑定,让一个域名同时绑定在电信、联通、移动的代理机器上,即可让电信的用户通过电信代理访问应用,联通的用户通过联通的代理进入,移动的用户通过移动的代理进入,满足了应用对三网接入的需求。 
 

 

14. 用户网络有问题怎么办?

单个用户网络问题,建议开发商协助用户检查其电脑设置,包括DNS,上网代理,防火墙,局域网设置,是否跨网等;
如果是批量用户出现网络问题,可以收集共性信息,比如地域,运营商,访问方式等,然后通过企业QQ联系运维支持进行问题定位和解决。 
 

 

15. http访问出现40x怎么办?

当http返回码出现40x的时候,表示用户提交的请求被服务器接受,但是被认为是错误的请求,包括:
请求语法错误,请求文件不存在,服务器拒绝请求,客户端请求发送超时等。 
开发者需要结合客户端请求和服务端设置来详细定位。详细返回信息信息请参考:
http://zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81

 

16. http访问出现50x怎么办?

当http返回码出现50x的时候,表示服务器在处理正确请求时,出现了内部错误,属于服务端问题。
建议开发者在服务代码和逻辑中进行定位。详细返回码信息请参考:
http://zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容