Linux错误及解决集合

  • 解决“/bin/bash^M: bad interpreter: No such file or directory”

原因 : 在执行shell脚本时提示这样的错误主要是由于shell脚本文件是dos格式,即每一行结尾以\r\n来标识,而unix格式的文件行尾则以\n来标识。

思路 :查看脚本文件是dos格式还是unix格式的几种办法。
(1) cat -A filename 从显示结果可以判断,dos格式的文件行尾为^M$,unix格式的文件行尾为$。
(2)od -t x1 filename 如果看到输出内容中存在0d 0a的字符,那么文件是dos格式,如果只有0a,则是unix格式。
(3)vi filename打开文件,执行 : set ff或者: set fileformat ,如果文件为dos格式在显示为fileformat=dos,如果是unxi则显示为fileformat=unix。

解决 :
(1)使用linux命令dos2unix filename,直接把文件转换为unix格式
(2)使用sed命令sed -i "s/\r//" filename 或者 sed -i "s/^M//" filename直接替换结尾符为unix格式
(3)vi filename打开文件,执行 : set ff=unix或者: set fileformat=unix 设置文件为unix,然后执行:wq,保存成unix格式。

  • 解决/usr/local/lib/libs.so‘‘ from /etc/ld.so.preload cannot be preloaded: ignored

原因 :疑似被攻击,注入了自动挖矿程序

思路 :
(1)排查异常的系统定时任务
(2)清理异常文件

解决 :

#把/etc/ld.so.preload 文件清空
echo "" > /etc/ld.so.preload
bash: /etc/ld.so.preload : Permission denied
#其中chattr +i命令是给文件夹加锁,删除完赶紧上锁,防止恶意文件再复制进去
# chattr root用户可能会没权限。 
# 先用lsattr 命令看一下 都有啥权限 
lsattr /etc/ld.so.preload #可以看到当前文件的属性,-ia 属性的文件是不能修改的,更不可被删除,即使是 root 用户也不可。
#chattr + 增加权限 - 去掉权限 具体用法看问题描述 
#拓展:chmod 命令,其底层实现是 chattr 命令,用此命的功能更为强大,甚至可以锁定文件,即使 root 用户也操作不了此文件。
#chattr 是用来更改文件属性,lsattr 可用来查看文件的属性,执行命令 lsattr /etc/ld.so.preload 便可以看到当前文件的属性。
chattr -ia /etc/ld.so.preload   #去除ia属性
chattr +i /etc
#将/var/spool/cron/*下的所有Linux定时器删除 
#好奇的话打开文件看一下里面是内容 猜的没错的话应该是一段定时脚本
rm -rf /var/spool/cron/*
#将r/etc/cron.d/*下的所有Linux定时器删除
#cron执行时,也就是要读取三个地方的配置文件:
#一是/etc/crontab,二是/etc/cron.d目录下的所有文件,三是每个用户的配置文件
rm -rf /etc/cron.d/*
#同上(加锁)
chattr +i /var/spool/cron/
#我的错误信息:ERROR: ld.so: object '/usr/local/lib/libs.so'...  
#所以移除下面这个文件,具体以你报错的文件为准
rm -f /usr/local/lib/libs.so
#同上(加锁)
chattr +i /usr/local/lib

killall kworkerds
rm -f /var/tmp/kworkerds*
rm -f /var/tmp/1.so
rm -f /tmp/kworkerds*
rm -f /tmp/1.so
rm -f /var/tmp/wc.conf
rm -f tmp/wc.conf

#有的服务器被恶心注入挖矿程序,导致CPU暴涨,可尝试如下解决方案
#查看占用cpu率最高的几个进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
# -s 9标识强制关闭 2477标识进程数
# kill -s 9 2477

#查看定时任务
 crontab -l

#删除定时任务 crontab -e  进入vim模式,删除
#删除某一文件下的所有文件
rm -rf /etc/cron.d/*
#查看文件夹的保护属性
lsattr 文件名
#删除文件夹保护属性
chattr -i 文件名
#添加文件夹保护属性
chattr +i 文件名

#linux 中快速清空文件内容的几种方法:
 : > filename 
 > filename 
 echo "" > filename 
 echo > filename 
 cat /dev/null > filename

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容