- 解决“/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