服务管理

1 如何创建新用户

在Linux中,服务器管理员可以使用useradd命令创建用户。如果不使用-D选项创建用户,新用户将根据命令中给出的参数和系统的默认值进创建。如果使用-m选项创建,则会创建一个新的主目录, 否则将使用默认值的主目录。

2 如何阻止一个IP地址?

在/etc/目录下的host.deny文件中添加要阻止的IP地址和协议名称,就可以封堵指定的IP地址。如:

sshd 10.0.0.1

3 解释vmstat命令

使用vmstat命令可以查看虚拟内存、磁盘、内核线程、系统进程、CPU活动、中断和I/O活动的统计数据。vmstat在Linux中默认不可用,可以通过安装包含vmstat的sysstay并加以利用,他能提供有关系统的各种信息。

4 什么是puppet服务

puppet服务是一种开源的软件服务,用于从服务端向客户端推送配置信息。它是一种IT自动化软件,可以执行多种活动,如检查文件权限、安装新应用程序和工具等。你可以使用它来传递初始参数,以启动特定软件,并对其进行跟踪,使其为你的业务发挥作用。

5 解释一下的命令:awk、sed、rsync

  • awk是一种脚本语言,用于创建搜索和处理数据的小型程序。它无需编译,提供大量字符串、数字和逻辑操作及函数。它适合用于模式的扫描
  • sed命令用于在Linux中的字符串操作,它用于文本流操作,并广泛用于文本查找和替换以及负责的模式匹配
  • rsync命令用于远程同步文件。你可以用它在本地和远程更快地复制文件。但它不支持在两个远程主机之间复制文件。

6 为什么telnet不是管理Linux的首选?

telnet不是安全的通信,因为它以纯文本根式发送信息,没有任何加密,任何人都可以轻易截获,并且telnet是以纯文本格式传递登录凭证,任何人都可以通过网络窃听到密码、口令等敏感信息。所以它不是管理Linux的首选。

7 如何在 Linux 中重新安装 GRUB?

要在 Linux 中重新安装 GRUB,必须按照下面的说明操作: 下载 Ubuntu 并从 Ubuntu 启动。当提示安装 Ubuntu 时,不要安装,而是挂载 Linux 根分区。在这里,你可以使用命令 $ sudogrub-install-root-directory = /\/安装或重新安装 GRUB,并将根目录作为主分区。现在,你必须重启系统并移除 Ubuntu 启动光盘。你将看到 Linux 启动菜单。

8 如何找到在哪些用户目录(位于/home/中)占用磁盘空间最大。

使用du命令来获取硬盘使用情况,并从结果中找到占用空间最大的目录

du -sh /home/*|sort -nr|head -10

9 如何将服务器时区更改为Asia/Shanghai时区

将/usr/share/zoneinfo/Asia/Shanghai链接到/etc/localtime

10 如何将用户tom的登录shell更改为/bin/sh?

使用命令

chsh -s /bin/sh tom

11 kill <PID>和kill -9 <PID>有什么区别?

当在kill命令中添加-9参数时,它会告诉PID立即退出,而不是以正常的方式退出。

12 如何在当前使用C类子网IP的eth0上添加一个IP地址为10.10.10.1的虚拟子网络接口?

可以在eth0的网卡上添加一个虚拟子接口,配置额外的系统IP

ifconfig eth0:0 10.10.10.1 netmask 255.255.255.0
# 或者
ip addr add 10.10.10.1/24 dev dev eth0 label eth0:1

13 如何定义写入/var/log/message的信息的日志级别?

发送到message的日志由syslogd管理 ,syslogd在/etc/syslog.conf中配置

14 如何把一个Linux服务器变成路由器

想把Linux服务器变成路由器,首先需要允许IP转发,可以通过下面的方法来实现

echo "1" > /proc/sys/net/ipv4/ip_forward

在/etc/sysctl.conf文件中设置

net.ipv4.ip_forward = 1

15 交换分区和交换文件有什么区别?

交换文件是分区上的一个本地文件,可被当前系统使用,而交换分区是一个独立分区,可被多个操作系统使用

16 已知安装了RPM文件xinet-2.3.14-10.el5

rpm命令允许通过下面的命令来查询rpm包以及识别出它安装或以来的文件。

17 给定硬盘上的本地文件/usr/bin/pstree,如何识别它来自于哪个RPM包?

rpm命令允许你反向查询rpm db里面的数据并搜索其文件,命令如下:

rpm -qf /usr/bin/pstree

18 什么是LVM?在哪里可以找到它的配置?

LVM是Linux卷管理器,其配置可以在/etc/lvm/lvm.conf中找到

19 如何获取Linux服务器上配置的所有服务的状态?

可以使用service命令(centos6或以前的发行版本)或者systemctl命令(centos7或以后的发行版本)来获取服务的相关信息

service --status-all
# 新的发行版本使用`systemctl`
systemctl list-units

20 如何更改系统库路径

要更改系统库的路径,就需要编辑/etc/ld.so.conf文件,然后允许ldconfig命令重新加载更改的内容

21 如何禁止所有发向Linux机器的ping响应?

需要操作IP的配置文件,输入下面的内容

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

22 你想强制用户john在90天后更改密码,怎么做?

使用chage命令可以前置用户在x天后更改密码

chage -M 90 john

23 如何列出所有链接的USB总线和设备?

运行lsusb命令,它会给出总线信息和有哪些设备在使用它。

24 硬件时钟和系统时钟不一致,如何同步系统时钟和硬件时钟?

硬件时钟可以通过hwclock来进行控制,为了同步硬件时间和系统时间,可以使用hwclock --systohc来将硬件时钟的时间复制到硬件时钟,或者使用hwclock -hctosys将硬件时钟复制到系统时钟。

25 如何检查硬盘上的坏块状态?

badblocks命令的执行结果可提供硬盘坏块的信息

badblocks -s /dev/sda

26 如何显示当前所有的挂载信息?

使用df -ah可以获取当前所有挂载点的信息,包括可用/已用空间。

27 如何检查内存和分页状态(可用、已用、缓存)

使用free -m可以获得当前内存状态,包括物理内存和交换内存的可用、已用和缓存状态。

28 如何获取CPU和硬盘活动的平均报告

iostat提供有关CPU和硬盘的系统I/O信息和平均值

29 如果想获得服务器前几天的统计信息,该怎么做?

要获取服务器的统计信息,可以使用sar命令

30 如何获取CPU的每个CPU或者核心的统计信息

要获取cpu每核的统计信息,可以使用下面的命令

mpstat -P ALL

31 如何查找当前目录下哪个子目录(一层子目录)的使用量最大?

使用du命令获取当前目录下的第一层子目录的大小,然后排序

du -k --max-depth=1|sort -nr

32 Linux系统的密码保持在哪里?

Linux系统的密码被加密后保存在/etc/shadow文件中

33 你正在使用Linux系统,但不确定现在使用的是哪个发行版本,如何检查?

为了查找Linuxdistro信息,你可以使用:

cat /etc/*release

34 如何查看本地计算机上当前有多少个端口正在使用(监听),以及每个端口上监听的是哪个应用程序?

要知道监听端口和应用程序,可以查看netstat的输出结果:

netstat -tupln

35 你忘记了root的密码,如何登录系统更改密码?

重启机器并以单用户模式(single mode)启动Linux,更改密码,然后用新密码登录。

36 如何改变Linux DNS的搜索行为,使其首先查找DNS,然后才在主机文件中查找?

将/etc/nsswitch.conf文件中的hosts参数从file dns改为dns file。

37 如何查找登录系统的用户的登录时间、时长等信息

要查找用户登录系统的信息,可以使用last

38 如何找出在Linux上使用80端口的进程?

fuser 80/tcp -v

39 在哪里可以找到下面的配置 %admin ALL=(ALL) ALL

sudoers(/etc/sudoers)配置里面

40 ext2和ext3文件系统之间的主要变化是什么?

与ext2不同,ext3包含日志

41 如何在Linux中控制进站和出站的数据包?

使用iptables或firewalld

42 在默认Linux安装中,你的root用户的umask值是022,它是什么意思?

umask是文件创建权限掩码,022意味着创建的新文件为644,创建的目录为755

43 在哪里可以找到有关服务器CPU的信息

在Linux系统中,硬件和进程信息回被保存在内存中,虚拟目录为/proc,你可以在/proc/cpuinfo中找到CPU的信息。

44 如果你想跟踪(追溯)一个进程的系统调用信号(文件/内存访问),该怎么做?

要追溯一个进程,需要找到该进程的进程号,然后用strace命令,即

strace -p <precess_number>

45 如何将服务器启动信息转储到本地日志文件myboot.log中。

可以使用dmesg命令查看启动信息,并将这些信息重定向到myboot.log文件中。

dmesg > myboot.log

46 有人试图入侵你的系统(使用有效用户和无效用户),请编写一条命令,显示系统的ssh登录失败机器日期和IP,格式如:Jul 8 12:00:00 username 192.168.10.10

可以在系统安全日志(/var/log/secure)中查找出登录失败的记录,再根据这些记录进行过滤,并创建统一格式的行来进行解析

cat /var/log/secure | grep "Failed password for"|sed 's/invalid user//g'|awk '{print $1,$2,$3,$9,$11;}'

47 你有一台DNS服务器,并且已经更新了配置,如何告诉DNS管理工具重新加载配置?

DNS的管理工具是rndc,可以使用下面的命令重新加载配置

rndc reload

48 crontab和at功能有什么区别

crontab(cron命令)用于安排每天在同一个时间(或多个时间)重复执行任务,而at命令则用于安排只运行一次的任务。

49 如何添加一个文件系统在Linux启动时自动挂载?

要自动挂载一个文件系统(分区),你需要再/etc/fstab文件下添加这个文件系统的标签(或设备名、UUID等唯一标识)、挂载点、文件系统类型和权限选项等等信息。

50 你决定在DNS服务中添加114.114.114.114用于DNS解析,请问应该编辑哪个文件,并向该文件中添加哪些内容?

/etc/resolv.conf文件包含了DNS服务器的列表,你需要再文件的末尾添加一行nameserver 114.114.114.114

51 如何将eth0网络接口设置为自动协商开启

你可以使用ethtool配置你机器上的以太网卡

ethtool --change eth0 autoneg on

52 如何显示服务器路由表(显示IP)

要不解析为域名的显示当前的路由表,可以使用route -n

53 你希望以较低的优先级来运行应用程序,这样它就不会占用系统的所有资源来运行,请问该如何在应用启动的时候做到这一点?

使用nice工具可以调整应用启动时的优先级

nice -n 19 指定运行的应用

54 如何调整默认的初始化运行级别为5?

要修改默认的初始化运行级别,需要编辑文件/etc/inittab,并且修改id开头的行

id:5:initdefault:

新版本使用systemctl来控制

systemctl set-default graphical.target

55 你有一个应用崩溃了,但是它没有创建核心转储文件,该如何处理?

使用ulimit -c确保没有设置为0,因为这个选项的设置是禁止创建核心转储文件的。

56 现在是下午1:00,你已经升级完系统的内核,需要重启系统,但是你晚上不会在这里,你该如何告诉系统在凌晨一点的时候重启?

你可以给重启命令定义时间shutdown -r 01:00,这样系统就会在凌晨1点的时候重启。

57 如何检查selinux的状态

要获取selinux的状态,可以使用sestatus命令来获取它的当前状态。