老男孩教育专注IT教育10余年,只培养IT技术精英

全国免费咨询电话(渠道合作):400-609-2893

【故障集合】Linux必备故障及原因50个 老男孩Linux

老男孩IT教育

行业新闻

2020年12月3日 15:50

老男孩Linux运维培训班学习中,Linux故障集合都有哪些?老男孩Linux培训课程,从0基础到云计算架构系列教学,全程面授实战,帮助Linux学习者入门Linux运维课程

此文档送给刚刚学习Linux的各位小伙伴

零.目录

一. 文件和目录类

  • File exist 文件已经存在
  • No such file or directory 没有这个文件或目录(这个东西不存在)
  • command not found 命令找不到(没有这个命令)
  • invalid option 无效的参数(不可用的参数)
  • overwrite 覆盖
  • remove regular empty file 是否删除普通文件(空的)?
  • is a directory xxx是一个目录
  • descend into directory 是否进入目录
  • Invalid level 无效的层数,层数必须大于0
  • Can't open file for writing 无法打开这个文件
  • No write since last change
  • xx column window is too narrow 窗口只有xx列太窄了 无法完全显示
  • xxx not a directory 不是一个目录
  • 查看压缩包的时候报错
  • You have mail in /var/spool/mail/root
  • permission denied
  • Warning: Changing a readonly file
  • 'readonly' option is set (add ! to override)
  • cp: omitting directory ‘/oldboy/’ unexpected end of file 或 Unexpected EOF in archive

二. 网络连接类

  • 远程连接错误 Connection Failed 连接失败
  • yum安装软件故障提示 Could not resolve host无法解析主机
  • yum安装软件提示:Nothing to do (没事做)
  • 没有找到叫treea的软件包
  • Name or service not known 域名无法识别(无法上网)

三. 修改系统基础配置类

  • 重启网卡报错 device not present
  • 修改主机名过程中,命令行中主机名没有变化
  • hostname命令修改主机名(临时 重启服务器之后失效)
  • 命令行中的主机名部分没有改变?

四. 用户相关错误

  • user 'oldboy' already exists
  • no such user
  • Only root can do that.
  • Only root can specify a user name.
  • Creating mailbox file: File exists
  • warning: the home directory already exists.
  • /etc/sudoers: syntax error near line 105 <<<

五.脚本及定时任务

一. 文件和目录类

1. File exist 文件已经存在

[root@oldboyedu59 ~]# mkdir   /data   /lidao  
[root@oldboyedu59 ~]# mkdir   /data   /lidao  
mkdir: cannot create directory ‘/data’: File exists
mkdir: cannot create directory ‘/lidao’: File exists

mkdir: cannot create directory ‘/lidao’: File exists 无法 创建 目录 因为这个目录已经存在

2. No such file or directory 没有这个文件或目录(这个东西不存在)

没有这个目录:文件或路径书写错误

[root@oldboyedu59 ~]# mkdir  /oldboy
[root@oldboyedu59 ~]# cd oldboy
-bash: cd: oldboy: No such file or directory

mkdir命令本身问题:mkdir 命令默认只能创建1层目录 创建多层报错 -p解决

[root@oldboyedu59 ~]# mkdir  /data/oldboy/lidao/
mkdir: cannot create directory ‘/data/oldboy/lidao/’: No such file or directory

touch命令只能创建文件,目录不存在则会报错 解决:先创建目录,再创建文件

[root@oldboyedu59 ~]# ls /oldboy/
oldboy.txt
[root@oldboyedu59 ~]# touch /oldboy/lidao/alex/oldboy.txt
touch: cannot touch ‘/oldboy/lidao/alex/oldboy.txt’: No such file or directory

排错思路: 1.ls命令检查对应的目录是否存在? 2.目录不存在 先创建目录在创建文件/

find命令与|xargs ll 错误 |xargs后面不支持别名

[root@kangxu ~]# find /oldboy  -name  "*.txt"  -type f |xargs ll
xargs: ll: No such file or directory

3. command not found 命令找不到(没有这个命令)

[root@oldboyedu59 ~]# mkdiy
-bash: mkdiy: command not found

1.书写错误 2.没有安装

4. invalid option 无效的参数(不可用的参数)

 [root@oldboyedu59 ~]# touch -p /oldboy/oldboy.txt
touch: invalid option -- 'p'
Try 'touch --help' for more information.

5. overwrite 覆盖

cp复制如果已经存在这个文件会提示是否覆盖

[root@oldboyedu59 ~]# cp  /oldboy/oldboy.txt   /tmp/
cp: overwrite ‘/tmp/oldboy.txt’?

6.remove regular empty file 是否删除普通文件(空的)?

[root@oldboyedu59 ~]# rm   /oldboy/oldboy.txt
rm: remove regular empty file ‘/oldboy/oldboy.txt’?

7. is a directory xxx是一个目录

rm默认无法删除目录 解决:加上-r 或-rf

[root@oldboyedu59 ~]# rm /data/
rm: cannot remove ‘/data/’: Is a directory

vi命令中 使用vi编辑目录也会报错

"/oldboy"
E502: "/oldboy" is a directory
Press ENTER or type command to continue

8. descend into directory 是否进入目录

[root@oldboyedu59 ~]# rm -r /data/
rm: descend into directory ‘/data/’? y
rm: remove regular empty file ‘/data/oldboy01.txt’? n
rm: remove regular empty file ‘/data/oldboy02.txt’? n
rm: remove regular empty file ‘/data/oldboy03.txt’? n
rm: remove regular empty file ‘/data/oldboy04.txt’? n
rm: remove regular empty file ‘/data/oldboy05.txt’? n
rm: remove regular empty file ‘/data/oldboy06.txt’? n
rm: remove regular empty file ‘/data/oldboy07.txt’? n
rm: remove regular empty file ‘/data/oldboy08.txt’? n
rm: remove regular empty file ‘/data/oldboy09.txt’? n
rm: remove regular empty file ‘/data/oldboy10.txt’? n
rm: remove directory ‘/data/’? n

9. Invalid level 无效的层数,层数必须大于0

注意参数位置

[root@oldboyedu59 ~]# tree  -L -F 2 / 
tree: Invalid level, must be greater than 0.

10. Can't open file for writing 无法打开这个文件

vi中 如果目录不存在就会提示

"/oldbyo/oldboy.txt"
"/oldbyo/oldboy.txt" E212: Can't open file for writing
Press ENTER or type command to continue

如果你对这个文件没有权限 也会提示

11.No write since last change

E37: No write since last change (add ! to override)
     粘包赖(你修改了内容就无法使用:q退出 需要使用:q!

12. xx column window is too narrow 窗口只有xx列太窄了 无法完全显示

这是w的坑 空间太小施展不开.

[root@oldboyedu60-lnb ~]# w
w: 39 column window is too narrow

13. xxx not a directory 不是一个目录

背景:创建文件的时候多了一个空格

[root@ssdz ~]# touch /oldboy /oldboy.txt  #此处要创建/oldboy/oldboy.txt 多个个空格 创建了2个文件 /oldboy和/oldboy.txt 
[root@ssdz ~]# ls -l /oldboy/         #系统认为oldboy是个目录 所以报错
ls: cannot access /oldboy/: Not a directory
[root@ssdz ~]# touch /oldboy/oldboy.txt
touch: cannot touch ‘/oldboy/oldboy.txt’: Not a directory
[root@ssdz ~]# ls -l /oldboy
-rw-r--r--. 1 root root 0 Apr  9 15:23 /oldboy

14.查看压缩包的时候报错

注意是否有特殊中文符号导致的。

[root@oldboy59 tmp]# tar ztf /tmp/etc.tar.gz
tar (child): \200\202\200\202\200\202\200\202/tmp/etc.tar.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now

15. You have mail in /var/spool/mail/root

你在这个文件/var/spool/mail/root 中有一个新邮件

16. permission denied

权限拒绝

17. W10: Warning: Changing a readonly file

使用vim的时候显示的 表示:正在修改只读文件 解决:

1.查看对文件是否有rw权限 2.如果是root用户可以修改后强制保存退出(:wq!)

18.no properly formatted MD5 checksum lines found

在使用md5sum -c (检查的时候) md5指纹信息文件中,格式不对 第1列是md5 信息 第2列文件名 解决:

查看MD5文件内容是否正确 检查的命令是否正确 md5sum -c oldboy.md5

md5sum: /oldboy/mtime/access_2019-04-01.txt: no properly formatted MD5 checksum lines found

19. E45: 'readonly' option is set (add ! to override)

通过vi/vim 编辑文件保存的时候(:wq) 提示 这个文件只读,:wq! 强制保存退出

20. cp: omitting directory ‘/oldboy/’

忽略这个目录 cp默认无法复制目录

[root@oldboyedu64-lnb ~]# cp /oldboy/  /tmp/
cp: omitting directory ‘/oldboy/’
[root@oldboyedu64-lnb ~]# ls -l /tmp/
total 8
-rwx------. 1 root root 836 Jun 30 17:36 ks-script-gWLqG0
-rw-r--r--. 1 root root 400 Jul  7 14:51 oldboy.txt
drwx------. 2 root root   6 Jun 30 17:42 vmware-root_6749-3879179984
-rw-------. 1 root root   0 Jun 30 17:27 yum.log

21. Unexpected EOF in archive

未知的 压缩文件结尾 主要原因是tar压缩包损坏 重新下载

[root@web02 tools]# tar xf nginx-1.16.0.tar.gz 

gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

img

二. 网络连接类

1. 远程连接错误 Connection Failed 连接失败

使用Xshell远程连接失败提示,检查端口是否开启或正确

[c:\~]$ 

Connecting to 10.0.0.200:233...
Could not connect to '10.0.0.200' (port 233): Connection failed.

Type `help' to learn how to use Xshell prompt.

使用telnet测试端口是否打开

[c:\~]$ telnet 10.0.0.200 233 

Connecting to 10.0.0.200:233...
Could not connect to '10.0.0.200' (port 233): Connection failed.   #233端口没有开启

Type `help' to learn how to use Xshell prompt.

端口开启

[c:\~]$ telnet 10.0.0.200 22
Connecting to 10.0.0.200:22...
Connection established.            #端口开启
To escape to local shell, press 'Ctrl+Alt+]'.
SSH-2.0-OpenSSH_7.4

Protocol mismatch.

Connection closed by foreign host.

Disconnected from remote host(10.0.0.200:22) at 12:22:54.

Type `help' to learn how to use Xshell prompt.
[c:\~]$

2. yum安装软件故障提示 Could not resolve host无法解析主机

Could not resolve host无法解析主机 主要是系统能否上网和DNS问题.

http://mirrors.tuna.tsinghua.edu.cn/centos/7.6.1810/updates/x86_64/repodata/repomd.xml: [Errno 14] curl#6 - 
"Could not resolve host: mirrors.tuna.tsinghua.edu.cn; Unknown error"
Trying other mirror.

3.yum安装软件提示:Nothing to do (没事做)

有两种情况: 情况1:软件已经安装并且最新如下:

Package tree-1.6.0-10.el7.x86_64 already installed and latest version
tree软件包已经安装并且是最新版本
Package 2:vim-enhanced-7.4.160-5.el7.x86_64 already installed and latest version
Package 1:bash-completion-2.1-6.el7.noarch already installed and latest version
Nothing to do

情况2:软件名字写错或没有配置yum源导致找不到这个软件包

[root@oldboyedu60-lnb ~]# yum install treea -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.lzu.edu.cn
 * extras: mirrors.nwsuaf.edu.cn
 * updates: mirrors.nwsuaf.edu.cn
base                                                                                              | 3.6 kB  00:00:00     
extras                                                                                            | 3.4 kB  00:00:00     
updates                                                                                           | 3.4 kB  00:00:00     
No package treea available. 
#没有找到叫treea的软件包
Error: Nothing to do

情况3:你需要安装软件包而不是软件包里面的命令 通过yum provides 查看命令属于哪个软件包

[root@oldboyedu59 ~]# yum install -y locate 
Loaded plugins: fastestmirror
Determining fastest mirrors
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                                                              | 3.6 kB  00:00:00     
extras                                                                                            | 3.4 kB  00:00:00     
updates                                                                                           | 3.4 kB  00:00:00     
(1/2): extras/7/x86_64/primary_db                                                                 | 187 kB  00:00:02     
(2/2): updates/7/x86_64/primary_db                                                                | 3.4 MB  00:00:04     
No package locate available.
Error: Nothing to do
[root@oldboyedu59 ~]# yum provides locate 
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base/7/x86_64/filelists_db                                                                        | 7.1 MB  00:00:03     
extras/7/x86_64/filelists_db                                                                      | 236 kB  00:00:00     
updates/7/x86_64/filelists_db                                                                     | 2.7 MB  00:00:01     
mlocate-0.26-8.el7.x86_64 : An utility for finding files by name
Repo        : base
Matched from:
Filename    : /usr/bin/locate\
[root@oldboyedu59 ~]# yum install -y mlocate 
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package mlocate.x86_64 0:0.26-8.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=========================================================================================================================
 Package                     Arch                       Version                           Repository                Size
=========================================================================================================================
Installing:
 mlocate                     x86_64                     0.26-8.el7                        base                     113 k

Transaction Summary
=========================================================================================================================
Install  1 Package

Total download size: 113 k
Installed size: 379 k
Downloading packages:
mlocate-0.26-8.el7.x86_64.rpm                                                                     | 113 kB  00:00:02     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : mlocate-0.26-8.el7.x86_64                                                                             1/1 
  Verifying  : mlocate-0.26-8.el7.x86_64                                                                             1/1 

Installed:
  mlocate.x86_64 0:0.26-8.el7                                                                                            

Complete!
[root@oldboyedu59 ~]# rpm -qa mlocate 
mlocate-0.26-8.el7.x86_64

4. Name or service not known 域名无法识别(无法上网)

原因1:DNS配置错误 原因2:Linux无法上网原因 https://www.jianshu.com/p/0bc0b596c1a0

[root@oldboyedu59 ~]# ping baidu.com 
ping: baidu.com: Name or service not known
                 域名无法识别(无法将域名---->ip地址)

三. 修改系统基础配置类

1. 重启网卡报错 device not present

[root@oldboyusd ~]# systemctl restart network 
Job for network.service failed because the control process exited with error code.
 See "systemctl status network.service" and "journalctl -xe" for details.

查看详细错误原因 ·journalctl -xe·

Apr 01 15:31:05 oldboyusd.1 network[7816]: Bringing up interface etho:  
ERROR     : [/etc/sysconfig/network-scripts/ifup-eth] Device  does not seem to be present, delaying initialization.
 
Apr 01 15:31:05 oldboyusd.1 /etc/sysconfig/network-scripts/ifup-eth[8019]: 
Device  does not seem to be present, delaying initializatio

2. 修改主机名过程中,命令行中主机名没有变化

1# hostname命令修改主机名(临时 重启服务器之后失效)

[root@oldboyedu59 ~]# hostname
oldboyedu59
[root@oldboyedu59 ~]# hostname oldboyedu59-lnb

2# 修改文件内容(写合同 永久 重启服务器之后生效)

vim /etc/hostname 
 oldboyedu59-lnb

3# 检查

[root@oldboyedu59 ~]# hostname
oldboyedu59-lnb
[root@oldboyedu59 ~]# cat /etc/hostname 
oldboyedu59-lnb

命令行中的主机名部分没有改变?

解决:重新登录下即可(断开连接,重新连接)

[root@oldboyedu59-lnb ~]#

3. unexpected EOF while looking for matching `"'

引号不成对

tail -2  /etc/profile 
alias net="cat /etc/sysconfig/network-scripts/ifcfg-eth0
export PS1="[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\] \[\e[31;1m\]\w\[\e[0m\]]\\$ "

[root@ssdz ~]# source /etc/profile
-bash: /etc/profile: line 78: unexpected EOF while looking for matching `"'
-bash: /etc/profile: line 79: syntax error: unexpected end of file

-bash: /etc/profile: line 78: unexpected EOF while looking for matching `"' /etc/profile 第78行 出乎意料的结尾 正在找 '"' 这个双引号的另一半

四. 用户类错误

1. user 'oldboy' already exists

用户已经存在

[root@oldboyedu59 ~]# useradd oldboy 
useradd: user 'oldboy' already exists

2. no such user

没有这个用户

[root@oldboyedu59 ~]# id lidao 
id: lidao: no such user

3.Only root can do that.

只有root用户可以使用 非交互式设置密码方式

[oldboy@oldboyedu59 ~]$ echo 123456|passwd --stdin oldboy
Only root can do that.

4.Only root can specify a user name.

只有root用户 运行passwd的时候 后面能加上用户名 普通用户默认只能运行passwd 不能加用户名 修改自己的密码

[oldboy@oldboyedu59 ~]$ passwd oldboy 
passwd: Only root can specify a user name.

5. Creating mailbox file: File exists 和warning: the home directory already exists.

添加用户的时候提示:

Creating mailbox file: File exists 正在创建这个用户的邮箱:邮箱已经存在 warning: the home directory already exists. 这个用户的家目录已经存在

删除用户的时候,默认不删除家目录和邮箱. 再次添加就会提示家目录存在和邮箱存在

[root@oldboyedu59 ~]# id stu01 
uid=1005(stu01) gid=1006(stu01) groups=1006(stu01)
[root@oldboyedu59 ~]# userdel stu01
[root@oldboyedu59 ~]# useradd stu01 
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
Creating mailbox file: File exists

6.user nginx is currently used by process 7540

用户正在使用中 被pid是7540的进程使用中

[root@web01 /usr/share/nginx/html/blog]#  usermod -u 2222   nginx 
usermod: user nginx is currently used by process 7540

五.脚本及定时任务

1. no crontab for root

root用户没有定时任务

[root@oldboyedu59 ~]# crontab -l
no crontab for root

root用户没有定时任务

2.no crontab for root - using an empty one

root用户没有定时任务,给root创建了1个新的 这里实际上给root创建了定时任务文件 /var/spool/cron/root 空文件

3.crontab: installing new crontab

更新定时任务规则

4. bad xxx, errors in crontab file,can't install

错误的{分|时|日|月|周},定时任务文件中有错误,无法更新定时任务

分时日月周格式错误01

#mei liangfenzhong xianshi xitong shijian zhuijiadao /tmp/oldboy.txt
* /1 * * * date  >>/tmp/oldboy.txt

"/tmp/crontab.5UZIdI" 3L, 115C written
crontab: installing new crontab
"/tmp/crontab.5UZIdI":3: bad hour   3是第3行的意思,错误的小时 小时位置书写错误 
errors in crontab file, can't install.
Do you want to retry the same edit?

分时日月周格式错误02 时间范围书写错误 21-00错误 改为 21-23,00 即可因为定时任务的小时为00-23

crontab -e 
#show time by liyy  at 20190101
#*/2 * * * * date >>/tmp/time.log

#
00  21-00 * * * date >>/tmp/time.log
00  21-00 * * * date >>/tmp/time.log
#00  21-23,00 * * * date >>/tmp/time.log

#backup /etc/ to /tmp by liyy  at 20190101
#00 00 * * *  sh  /server/scripts/bak-etc.sh

"/tmp/crontab.SpZAZH" 9L, 238C written
crontab: installing new crontab
"/tmp/crontab.SpZAZH":5: bad hour
errors in crontab file, can't install.
Do you want to retry the same edit?

5. You have new mail in /var/spool/mail/root

你有1个新邮件 在/var/spool/mail/root

  老男孩教育Linux培训班,从0基础到云计算架构,是一系列的实践课程。在Linux基础、云计算运维、Docker容器、集群与存储、数据库管理、安全技术、自动化运维、Python开发等方面的教学,帮助学生高效学习Linux技术,奠定坚实的理论基础和优秀的实践能力。帮助更多的Linux爱好者成为更好的Linux运维工程师

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。