首页 > 代码库 > 第16章   linux系统日常管理

第16章   linux系统日常管理

1. 如何看当前Linux系统有几颗物理CPU和每颗CPU的核数?
物理cpu个数:cat /proc/cpuinfo |grep -c ‘physical id‘
CPU一共有多少核:grep -c processor /proc/cpuinfo  
将CPU的总核数除以物理CPU的个数,得到每颗CPU的核数。

2. 查看系统负载有两个常用的命令,是哪两个?这三个数值表示什么含义呢?
两个命令分别是  w 和 uptime 

load average: 0.00, 0.00, 0.00

这三个系统负载值分别表示在1分钟、5分钟和15分钟内平均有多少个任务处于活动状态。

3. vmstat r, b, si, so, bi, bo 这几列表示什么含义呢?
r 表示运行和等待cpu时间片的进程数
b 表示等待资源的进程数,比如等待I/O, 内存等
si 表示由交换区进入内存的数量
so 由内存进入交换区的数量
bi 从块设备读取数据的量(读磁盘)
bo 从块设备写入数据的量(写磁盘)

4. linux系统里,您知道buffer和cache如何区分吗?
简单讲,buffer里的数据是将要写入到磁盘里的,而cache里的数据时从磁盘里读出来的。
cache用来缓存从磁盘中读取出来的数据,以方便数据下次被访问,提高数据的访问效率,避免频繁读取磁盘操作。Linux自动地使用所有空闲的内存作为高速缓冲,当程序需要更多的内存时,它也会自动地减小缓冲的大小。
buffer用来缓冲数据的磁盘写入操作,通过将分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。linux有一个守护进程定期清空缓冲内容(即写磁盘),也可以通过sync命令手动清空缓冲。

5. 使用top查看系统资源占用情况时,哪一列表示内存占用呢?
RES这一列表示物理内存占用数量

6. 如何实时查看网卡流量为多少?如何查看历史网卡流量?
sar -n DEV 1 100 
sar -n DEV  可以查看当天的历史网卡流量
sar -n DEV -f /var/log/sa/saxx  其中xx是日期

7. 如何查看当前系统都有哪些进程?
   ps aux  
8. ps 查看系统进程时,有一列为STAT, 如果当前进程的stat为Ss 表示什么含义?如果为Z表示什么含义?
   Ss表示当前的进程是主进程,且处于休眠状态; Z表示僵尸进程

9. 如何查看系统都开启了哪些端口?
   netstat -lnp
10. 如何查看网络连接状况? 
   netstat -an
11. 想修改ip,需要编辑哪个配置文件,修改完配置文件后,如何重启网卡,使配置生效?
 vim /etc/sysconfig/network-scripts/ifcft-eth0  如果是eth1则文件名为ifcft-eth1

   修改网卡后,可以使用命令: ifdown eth0; ifup eth0 

    重启网卡,也可以重启网络服务:service network restart

12. 能否给一个网卡配置多个IP? 如果能,怎么配置?
    可以给一个网卡配置多个IP,配置步骤如下:
1) cd /etc/sysconfig/network-scripts/ cp ifcfg-eth0 ifcfg-eth0\:1
2) vim ifcfg-eth0\:1  #修改DEVICE和IPADDR、NETMASK以及GATEWAY的值(如果有必要)
3) 重启网络服务

13. 如何查看某个网卡是否连接着交换机?
    mii-tool eth0 或者 mii-tool eth1

14. 如何查看当前主机的主机名,如何修改主机名?要想重启后依旧生效,需要修改哪个配 置文件呢?
    输入命令 hostname 可以查看当前主机名,修改主机名可以通过命令: hostname newhostname 
要想重启后依旧生效,需要修改配置文件 /etc/sysconfig/network

15. 设置DNS需要修改哪个配置文件?
需要修改 /etc/resolv.conf, 
有时修改该文件后再重启网络服务dns相关设置丢失的话,需要在/etc/sysconfig/network-scripts/ifcfg-eth0中增加DNS1=xxxxx这样的设置

16. 使用iptables 写一条规则:把来源IP为192.168.1.101访问本机80端口的包直接拒绝
  iptables -I INPUT -s 192.168.1.101 -p tcp --dport 80 -j REJECT
17. 要想把iptable的规则保存到一个文件中如何做?如何恢复?
   保存:iptables-save > 1.ipt
      恢复:iptables-restore < 1.ipt

18. 如何备份某个用户的任务计划?
   直接拷贝用户的cron文件   cp /var/spool/cron/username   /bak/

19. 任务计划格式中,前面5个数字分表表示什么含义?
    时间段,共5段    min  hou  day  mon  week   分  时   日   月   周   

20. 如何可以把系统中不用的服务关掉?
    ntsysv 工具
     或者使用chkconfig servicename off

21. 如何让某个服务(假如服务名为 nginx)只在3,5两个运行级别开启,其他级别关闭?
   chkconfig nginx off
      chkconfig --level 35 nginx on

22. rsync 同步命令中,下面两种方式有什么不同呢?
(1) rsync -av  /dira/  ip:/dirb/   通过ssh方式同步
(2) rsync -av  /dira/  ip::dirb    通过rsync服务方式同步

23. rsync 同步时,如果要同步的源中有软连接,如何把软连接的目标文件或者目录同步?
  需要加一个 -L  选项
24. 某个账号登陆linux后,系统会在哪些日志文件中记录相关信息?
   有两个日志文件:

      1)/var/log/secure 这个记录验证用户信息的过程 

      2)/var/log/wtmp  这个日志记录成功登陆的用户信息

25. 网卡或者硬盘有问题时,我们可以通过使用哪个命令查看相关信息?
      dmesg
26.  分别使用xargs和exec实现这样的需求,把当前目录下所有后缀名为.txt的文件的权限修改为777.
    find ./ -type f -name "*.txt" |xargs chmod 777  (主要用这个)

    exec: find ./ -type f -name "*.txt" -exec chmod 777 {} \;

27. 有一个脚本运行时间可能超过2天,如何做才能使其不间断的运行,而且还可以随时观察脚本运行时的输出信息?
   使用screen工具

28. 在Linux系统下如何按照下面要求抓包:只过滤出访问http服务的,目标ip为192.168.0.111,一共抓1000个包,并且保存到1.cap文件中?
      tcpdump -nn -s0 host 192.168.0.111 and port 80 -c 1000 -w 1.cap

29. rsync 同步数据时,如何过滤出所有.txt的文件不同步?
    --exclude="*.txt"
30.  rsync同步数据时,如果目标文件比源文件还新,则忽略该文件,如何做?
    加-u 参数
31.  想在Linux命令行下访问某个网站,并且该网站域名还没有解析,如何做?
   修改 /etc/hosts 增加解析记录,或者使用curl -x 

32. 自定义解析域名的时候,我们可以编辑哪个文件?是否可以一个ip对应多个域名?是否一个域名对应多个ip?
   编辑 /etc/hosts ,可以一个ip对应多个域名,不可以一个域名对多个ip

33. 我们可以使用哪个命令查看系统的历史负载(比如说两天前的)?
      sar -q -f /var/log/sa/saxx  其中xx为两天前的日期

34. 在Linux下如何指定dns服务器,来解析某个域名?
    dig @DNSip  domain.com

35. 使用rsync同步数据时,假如我们采用的是ssh方式,并且目标机器的sshd端口并不是默认的22端口,那我们如何做?
    rsync "--rsh=ssh -p port"

36. rsync同步时,如何删除目标数据多出来的数据,即源上不存在,但目标却存在的文件或者目录?
   --delete
37. 使用free查看内存使用情况时,哪个数值表示真正可用的内存量?
  第二行 -/+ buffers/cache 对应的free的那一个数

38. 有一天你突然发现公司网站访问速度变的很慢很慢,你该怎么办呢?(服务器可以登陆,提示:你可以从系统负载和网卡流量入手)
   首先登陆服务器,先看看负载情况,使用命令w, 如果第一个数值很大,再使用vmstat 1 查看是哪些资源缺乏造成的负载高,可以通过r,b,si,so 几列的数值推算是因为哪些资源缺乏。比如r列数值很大,需要使用top命令查看是哪个进程占用CPU比较多,如果si,so两列的数值变化频繁,则说明内存不足,也可以使用top命令查看哪些进程占用较多内存。
如果系统的负载不高,则需要查看一下网卡流量是否正常: sar -n DEV 1 10  对比平时的网络流量看是否正常。

39. rsync使用服务模式时,如果我们指定了一个密码文件,那么这个密码文件的权限应该设置成多少才可以?
    chmod  600 或者 400 ,总之组和其他用户都不能读不能写也不能执行

扩展阅读:

防火墙iptables相关

iptables 实现centos内网机器访问外网 http://www.lishiming.net/thread-3624-1-1.html

linux下使用iptables实现内网的ftp端口映射 http://www.lishiming.net/thread-1003-1-1.html

iptables限制syn速度 http://www.lishiming.net/thread-985-1-1.html

iptables 针对一个网段 http://www.lishiming.net/thread-177-1-3.html

rsync相关

rsync 如何在远程自动创建目录 http://www.lishiming.net/thread-1047-1-1.html

rsync 根据一个文件列表文档来同步 http://www.lishiming.net/thread-1024-1-1.html


网络相关

linux下的几个网络连接状态具体含义  http://www.lishiming.net/thread-5492-1-1.html

使用tshark抓包分析http请求 http://www.lishiming.net/thread-995-1-1.html

linux 查看网卡速度调整工作模式 http://www.lishiming.net/thread-826-1-2.html

tcpdump 命令的使用 http://www.lishiming.net/thread-72-1-3.html

nload 监控网卡流量 http://www.lishiming.net/thread-5551-1-1.html

linux系统相关

linux下使用pmap指令查看进程的内存使用 http://www.lishiming.net/thread-977-1-1.html

怎么知道linux系统安装的时间 http://www.lishiming.net/thread-930-1-1.html

linux下比较两个时间的时间差 http://www.lishiming.net/thread-833-1-2.html

screen源码编译安装  http://www.lishiming.net/thread-469-1-2.html

linux下调整时区和时间的方法 http://www.lishiming.net/thread-17-1-3.html

详细说明Buffer和Cache的区别 http://www.lishiming.net/thread-117-1-3.html

修改linux系统的默认字符集 http://www.lishiming.net/thread-93-1-3.html

CURL相关

Curl 使用 http://www.lishiming.net/thread-814-1-2.html

curl 指定用户以及密码访问 http://www.lishiming.net/thread-926-1-1.html

wget 下载如何输入用户名密码验证 http://www.lishiming.net/thread-840-1-2.html

在linux上使用curl访问网站,指定主机IP http://www.lishiming.net/thread-622-1-2.html

第16章   linux系统日常管理