一、shell脚本报错

1
shell脚本报错:-bash: xxx: /bin/bash^M: bad interpreter: No such file or directory

问题分析:

主要原因是test.sh是在windows下编辑然后上传到linux系统里执行的。.sh文件的格式为dos格式。而linux只能执行格式为unix格式的脚本。

解决办法:

方法一:可以通过vim编辑器来查看文件的format格式。

1) 使用vim进入文件,使用:set ff命令来查看文件格式。正常的格式为unix

2) 执行:set ff=unix命令,然后回车,最后执行:wq!退出文件即可解决。

方法二:直接使用dos2unix命令修改

1
2
[root@localhost test]# dos2unix test.sh   
dos2unix: converting file test.sh to UNIX format ...

二、切换用户,提示bash-4.2

1
2
[root@liuyzh1 ~]# su elasticsearch
bash-4.2$

分析:

  1. 查看/etc/passwd,显示用户elasticsearch信息
  2. 进入/home/elasticsearch,发现没有任何文件
  3. 原因:缺少了用户环境配置文件

解决办法

  1. /etc/skel/目录下的文件放到/home/elasticsearch

即可解决

三、npm -v、pm2 list报错

问题背景:执行npm -g install pm2npm -g install npm@2.15.9命令之后,将nodejs包拷到其他主机,想可以直接使用pm2的相关命令。

结果:执行npm-v报错,执行pm2 list报错

解决办法:

1
2
cd /usr/nodejs/node-v4.5.0-linux-x64/bin
ll

将node.js的bin目录的文件与../lib/node_modules/npm/bin../lib/node_modules/pm2/bin的文件做软连接就可以了。

如果要实现pm2的免安装使用,就将node.js文件压缩成tar包,这样就不会破坏软连接,进而不会导致命令不可用了。点击进行下载

四、tar zxvf files出现implausibly old time stamp问题

问题分析:

文件时间大于你的系统时间,也就是说文件是早于当前时间创建/修改的,这个问题可以忽略,一般来讲,不影响正常使用。

解决办法:

可以在展开文件后,用命令touch *同步文件时间。

五、kernel:NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s

解决办法:

1
echo 30 > /proc/sys/kernel/watchdog_thresh