Error系列-常见异常问题解决方案以及系统指令总结
前情提要
- 作为一名开发,日常工作中会遇到很多报错的情况,希望我的总结可以帮助到小伙伴们~
- 日常工作中也会遇到需要部署项目或者登陆linux系统操作的情况,很多时候需要查找一些命令,于是我决定,要把我日常经常用到的一些命令总结起来,分享给小伙伴们~~
- 下面以各个场景为案例,来列举我常用的一些命令
场景1:部署项目pm2启动以后无法访问项目,于是我采用了下面命令来重现问题
pm2 查看进程
pm2 ls
pm2 停止某个项目
pm2 stop 项目名
启动且重命名进程/应用
pm2 start app.js --name 项目名
查看日志
pm2 logs
场景2:yarn install 报错 self signed certificate in certificate chain
error An unexpected error occurred: "https://registry.npmmirror.com/bcryptjs/-/bcryptjs-2.4.3.tgz: self signed certificate in certificate chain".
info If you think this is a bug, please open a bug report with the information provided in "/var/local/xxx/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
问题解决
yarn config set "strict-ssl" false -g
场景3:error node_modules/sharp: Command failed.
error /var/local/xxxxx/node_modules/sharp: Command failed.
Exit code: 1
Command: (node install/libvips && node install/dll-copy && prebuild-install) || (node install/can-compile && node-gyp rebuild && node install/dll-copy)
Arguments:
Directory: /var/local/xxxxxxxx/node_modules/sharp
Output:
问题解决
1. 下载python
2. 设置npm 的 python 环境变量
npm config set python=/usr/bin/python2.7
yarn config set python "/usr/bin/python2.7"
npm config set sharp_binary_host "https://npmmirror.com/mirrors/sharp"
npm config set sharp_libvips_binary_host "https://npmmirror.com/mirrors/sharp-libvips"
3. 如果上述步骤无法解决,请参考下面的我这几篇文章
场景4:某些情况下,登陆linux系统做一些操作的时候需要 Root 授权
问题解决
# 进入根路径
[serverName ~]$ cd /
# 查看文件列表
[serverName /]$ ls
bin boot conf data dev docker-data etc home lib lib64 media mnt opt plugins proc root run sbin srv storage sys tmp usr var
# 想要进入某个路径,发现没有权限
[serverName /]$ cd var/local/xxxxxx/
-bash: cd: var/local/xxxxxx/: Permission denied
# 开启权限
[serverName /]$ sudo su
[sudo] password for XXXXXX_USER_01:
[root@serverName /]# cd var/local/xxxxxx/
[root@serverName xxxxxx]# ls
xxxxxx-uat-2 yarn.lock
# 删除某个文件(yarn.lock)
[root@serverName xxxxxx]# rm -rf yarn.lock
[root@serverName xxxxxx]# ls
xxxxxx-uat-2
# 设置python
[root@serverName xxxxxx]# cd xxxxxx-uat-2/
[root@serverName xxxxxx-uat-2]# yarn config set python "/usr/lib64/python2.7"
yarn config v1.22.18
success Set "python" to "/usr/lib64/python2.7".
Done in 0.04s.
[root@serverName xxxxxx-uat-2]# yarn install
场景5:复制文件从有权限目录到无权限目录
问题解决
# 开启权限,输入密码
[serverName /]$ sudo su
[sudo] password for XXXXXX_USER_01:
[root@servername var]# cd local
# mkdir 命令是 Linux操作系统中的一个基本工具,用于在文件系统中创建新的目录
[root@servername local]# mkdir uat-path
# mv 命令(move 的缩写),既可以在不同的目录之间移动文件或目录,也可以对文件和目录进行重命名。该命令的基本格式如下:
# 使用规则:mv 【选项】 源文件 目标文件
[root@servername local]# mv /home/path_01/td/project-uat-2 ./
[root@servername local]# ls
uat-path project-uat-2
[root@servername local]# mv project-uat-2/ uat-path/
[root@servername local]# ls
uat-path
[root@servername local]# cd uat-path/
场景6:给user1加var目录权限
问题解决
sudo chown -R USER_01:USER_01 /var
场景7:设置环境变量 NODE_TLS_REJECT_UNAUTHORIZED 的值为 0,临时禁用 SSL certificate
问题解决
yarn config set NODE_TLS_REJECT_UNAUTHORIZED 0
举例:
[USER_01@servername /app]$ yarn config set NODE_TLS_REJECT_UNAUTHORIZED 0
yarn config v1.22.18
success Set "NODE_TLS_REJECT_UNAUTHORIZED" to "0".
Done in 0.04s.
场景8:代码执行遇到报错npm run deploy Error: connect->getConnection: All configured authentication methods failed
PS C:\my_files\my-project> npm run deploy
> vue-typescript-admin-template@1.0.2 deploy
> node deploy.js
Error: connect->getConnection: All configured authentication methods failed
at fmtError (C:\my_files\my-project\node_modules\ssh2-sftp-client\src\utils.js:55:18)
at SftpClient.connect (C:\my_files\my-project\node_modules\ssh2-sftp-client\src\index.js:217:13)
at async main (C:\my_files\my-project\deploy.js:16:5) {
code: 'ERR_GENERIC_CLIENT',
custom: true
}
undefined
C:\my_files\my-project\node_modules\ssh2-sftp-client\src\utils.js:55
let newError = new Error(msg);
^
Error: end: No SFTP connection available
at fmtError (C:\my_files\my-project\node_modules\ssh2-sftp-client\src\utils.js:55:18)
at haveConnection (C:\my_files\my-project\node_modules\ssh2-sftp-client\src\utils.js:311:20)
at C:\my_files\my-project\node_modules\ssh2-sftp-client\src\index.js:1314:11
at new Promise (<anonymous>)
at SftpClient.end (C:\my_files\my-project\node_modules\ssh2-sftp-client\src\index.js:1305:12)
at main (C:\my_files\my-project\deploy.js:25:12) {
code: 'ERR_NOT_CONNECTED',
custom: true
}
PS C:\my_files\my-project>
问题分析
此问题出在ssh2连接的过程中报错
问题解决
-
- 更换密码
-
- 配置项添加斜杠转义
场景9:linux配置DNS解析
修改这个文件/etc/resolv.conf就可以配置DNS
科普
/etc/resolv.conf是DNS客户机的配置文件,用于设置DNS服务器的IP地址及DNS域名
resolv.conf的关键字主要有4个,分别为:
- nameserver:定义DNS服务器的IP地址
- domain:定义本地域名
- search:定义域名的搜索列表
- sortlist:对返回的域名进行排序
注意:这里最主要的就是nameserver关键字,如果没有指定nameserver就找不到DNS服务,其它关键字是可选的。
配置示例
cat /etc/resolv.conf
domain xxx.com
search www.xxx.com xxx.com
nameserver 111.112.112.11
nameserver 111.112.112.11
场景10:查硬盘以及内存,查看磁盘占用的空间,查看linux内存使用情况
df -h 命令详解
df -h 查看磁盘占用的空间
- Filesystem:表示该文件系统位于哪个分区,因此该列显示的是设备名称;
- Used:表示用掉的磁盘空间大小;
- Available:表示剩余的磁盘空间大小;
- Use%:磁盘空间使用率;
- Mounted on:文件系统的挂载点,也就是磁盘挂载的目录位置
[xxxxx ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
aaaaaafs 3.9G 0 3.9G 0% /dev
aaaas 3.9G 0 3.9G 0% /dev/aaa
aaaas 3.9G 114M 3.8G 3% /run
aaaas 3.9G 0 3.9G 0% /sys/fs/cgroup
free -m 命令详解
- 查看linux内存使用情况
- -m 参数就是用 M 为单位显示内存使用情况
[xxxxxxxxxxx ~]$ free -m
total used free shared buff/cache available
Mem: 7821 3451 304 208 4065 3862
Swap: 9723 327 9396
-
Mem:内存的使用情况总览表。
-
total:表示物理,内存总量–机器总的物理内存 单位为:M
-
used:用掉的内存
-
free: 空闲的物理内存–未被分配的内存
-
shared:共享内存,一般系统不会用到,这里也不讨论
-
buffers:系统分配但未被使用的buffers数量
-
cached:系统分配但未被使用的cache数量
场景11:待补充
- 今天就写到这里啦~
- 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
- 大家要天天开心哦
欢迎大家指出文章需要改正之处~
学无止境,合作共赢