当前位置:网站首页 > C++编程 > 正文

linux dhclient卡住(linux中dhclient)



  系统故障排查关注

  • 应用日志查询: tailf /var/log/messages
  • 登录日志查询: tailf /var/log/secure
  • 系统日志查询: dmesg
  • 容易攻击点查询 :/var/tmp /tmp
  • 计划任务查询(经常攻击对象): crontab -l 、 /etc/crontab

  一)以普通用户运行开机自启程序

  1、系统环境

  系统:CentOS

  普通用户:redis

  注意:CentOS7.x与之前的版本管理命令不同

  2、解决方案

  Linux在启动时,会自动执行/etc/rc.d目录下的初始化程序,因此我们可以把启动任务放到该目录下,有两种办法:

    1、方案一:将运行脚本放入/etc/rc.d/rc.local

  1、因为其中的rc.local是在完成所有初始化之后执行,因此我们可以把启动脚本写到里面

  2、用root账号登陆Linux,vi /etc/rc.d/rc.local编辑文件,在最后加入两行需要执行的脚本程序:

cd /home/testops su - reedis -c "whoami"

  补充知识点:su命令

  su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。

-c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份

    2、方案二:写系统自启管理脚本

  1、/etc/init.d目录下都为可执行程序,他们其实是服务脚本,按照一定格式编写,Linux 在启动时会自动执行,类似Windows下的服务

  2、用root帐号登录,vi /etc/rc.d/init.d/redis,追加如下内容:

#!/bin/bash #chkconfig:2345 80 05 --指定在哪几个级别执行,0一般指关机, 6指的是重启,其他为正常启动。80为启动的优先级,05为关闭的优先机 #description:redis service RETVAL=0 start(){ --启动服务的入口函数   echo -n "redis serive ..."   cd /home/redis   su - redis -c "/usr/bin/redis-server /etc/redis.conf" } stop(){ --关闭服务的入口函数   /usr/libexec/redis-shutdown } case $1 in --使用case,可以进行交互式操作 start)   start   ;; stop)   stop   ;; esac exit $RETVAL

  3、运行chmod +r /etc/rc.d/init.d/redis,使之可直接执行

  4、运行chkconfig --add redis,把该服务添加到配置当中

  5、运行chkconfig --list redis,可以查看该服务进程的状态

  CentOS 7.x新加方法:添加自启服务

  1、/usr/lib/systemd/system目录下都为可执行程序,他们其实是服务脚本,按照一定格式编写,Linux 在启动时会自动执行,类似Windows下的服务

  2、用root帐号登录,vim /etc/systemd/system/redis.service,追加如下内容:(系统自带的在/usr/lib/systemd/system目录下,自己创建可以在/etc/systemd/system目录下)

[Unit] Description=Redis persistent key-value database After=network.target [Service] ExecStart=/usr/bin/redis-server /etc/redis.conf --daemonize no ExecStop=/usr/libexec/redis-shutdown User=redis Group=redis RuntimeDirectory=redis RuntimeDirectoryMode=0755 [Install] WantedBy=multi-user.target

  3、systemctl start redis(启动测试,服务正常启动即可)

  4、systemctl enable redis(设置为开机自启)

  二)系统磁盘变成只读

  使用fsck修复文件系统错误:使用fsck修复文件系统错误-喵喵俠-ChinaUnix博客

  三)系统无法启动

  1、故障:系统相关磁盘空间已满,无法加载相应系统服务
    1、原因:空间不足,无法写入(var相应的分析满了)
    2、分析:启动系统时,会启动一些开机自启服务(会产生一些文件,会写入一些数据)
    3、解决:

  思路:进入单用户模式进行修复:查看因为什么文件导致空间满了,找到后分析文件是否有用:无用直接删除;有用则将其暂时移到其他位置,使服务器能正常启动,然后提出、并实施磁盘相应的处理方案

  步骤:

  1 如何进入单用户模式:https://blog.csdn.net/_/article/details/ 不让系统自动引导——在引导界面按e进入手动引导模式,选择引导的用户和内核继续按e进入新界面,在quiet行尾输入single,回车返回上一个界面按b进入单用户模式   2 在单用户模式都能操作什么 自启服务都不会启动,只会检查文件系统和mout相应的磁盘,空间不够也不会影响进入单用户模式
  2、故障现象:ROOT账号无法xshell远程连接,普通用户可以远程连接

  带[]的进程是系统的核心进程,必须使用root启动(若没有root账户,系统是无法正常启动的,因为有些操作是需要root账户进行授权的:Linux将root改名,系统也是无法启动的)

    1、分析:
  • 系统启动时,切换到debug模式查看,chown无法授权
  • 使用系统自有的普通用户登录,无法切换到root用户
  • 普通用户登录,查看本应root用户启动的进程是另外一个用户
    2、原因:有人因为想避免root账户被攻击,更改root的账号(考虑不周的想法)
    3、解决:更改root权限的用户名改回来:进入单用户模式,将root进行改名——直接更改/etc/passwd

  三)服务器远程连接问题

  1、现象:要连接上,又退出了连接步骤
    1、分析:
limit -a 查看ssh日志:/var/log/secure发现有pam_limits(ssh_session):could not set limit for 'nofile': Operation not permitted 相关的设置:/etc/security/limits.conf 和/etc/security/limits.d/90-nproc.conf 若两个文件都设置了,最终生效的是后者 下面的值不能设置太大,会产生资源越界(系统日志会提示没有权限),会导致远程无法登陆;也不要设置太小, open files (-n) 65535 文件描述符,打开最大的文件数:这个需要人根据服务器配置自行设置相应的值,系统不会自动设置一个合理的值(但是不能设置特别大,因为这样系统会无法识别) max user processes (-u) 63631 用户打开的最大进程数 :这个虽然可以设置没有限制,但是硬件会有相应的限制,系统会根据硬件性能设置一个值
    2、原因:/etc/security/limits.d/90-nproc.conf 或/etc/security/limits.conf 里面的open files设置的太大,但无法识别最大值时,他会走默认设置
    3、解决:将open files值调小一些
    4、总结:
  • open files这个值阶梯性调整,不要一下设置太大
  • open files这个值足够了,若还有问题,有可能是受到攻击
  • java需要打开文件数会大
  • 线下多种情况设置完毕后,再去设置线上

  四)Linux系统sudo命令无效

  1、报错如下

  

  2、分析
  1. 此用户是否有拥有sudo权限,有的话进行下一步
  2. 有sudo权限的用户,测试是否sudo正常,不正常的话进行下一步
  3. sudo.conf和sudoers这两个文件是否有问题
    1. 语法问题
    2. 文件的权限、所属主、组问题
   3、原因

  产生问题原因:更改sudo文件的所属主,如下截图

  

  4、解决

  解决办法:将文件所属主改回去,立马好了

chown -R root sudo.conf sudoers

  

  验证

  

到此这篇linux dhclient卡住(linux中dhclient)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • git clone指定文件(git clone bundle)2025-12-13 16:00:09
  • cp215w连接手机(cp1300手机连接)2025-12-13 16:00:09
  • msvcp140为什么会丢失(msvcp140dll丢失会有什么影响)2025-12-13 16:00:09
  • kubectl 配置文件(kubeadm配置文件)2025-12-13 16:00:09
  • 字符串转int c语言(字符串转intc语言)2025-12-13 16:00:09
  • webflux太难用了(webflux webclient)2025-12-13 16:00:09
  • gitclone如何下载代码(git clone怎么下载)2025-12-13 16:00:09
  • 安卓pcap文件查看器(安卓 文件查看器)2025-12-13 16:00:09
  • msvcp120.dll找不到(msvcp120.dll找不到的解决方法)2025-12-13 16:00:09
  • 进程控制块PCB的作用(进程控制块pcb的作用有哪些)2025-12-13 16:00:09
  • 全屏图片