要約
- 開発者として、私は日々の業務で多くのエラー報告に遭遇します。私の要約が友人たちの助けになれば幸いです~
- 私も日々の仕事の中で、プロジェクトをデプロイしたり、Linux システムにログインして操作したりする必要がある場面に遭遇することがありますが、コマンドを探す必要があることが多いので、日常的によく使うコマンドをいくつかまとめて共有することにしました。私の友達~~
- 各シナリオを例として、よく使用されるコマンドのいくつかをリストしてみましょう。
シナリオ 1: デプロイメント プロジェクト pm2 の開始後にプロジェクトにアクセスできないため、次のコマンドを使用して問題を再現しました
pm2ビュープロセス
pm2 ls
pm2がプロジェクトを停止する
pm2 stop 项目名
プロセス/アプリケーションの起動と名前変更
pm2 start app.js --name 项目名
ビュー・ログ
pm2 logs
シナリオ 2: 糸のインストールが証明書チェーン内の自己署名証明書エラーを報告する
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:エラーnode_modules/sharp: コマンドが失敗しました。
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. 上記の手順で問題が解決しない場合は、以下の記事を参照してください。
-
Sharp が遅すぎて失敗する問題を解決します。strapi-server.js を読み込めませんでした。pm「sharp」モジュールのインストール中に問題が発生しました
-
フロントエンドの Sharp インストール エラー Sharp: コマンドが失敗したという問題を解決するための複数の解決策。
シナリオ 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: var ディレクトリ権限を user1 に追加する
問題が解決しました
sudo chown -R USER_01:USER_01 /var
シナリオ 7: 環境変数 NODE_TLS_REJECT_UNAUTHORIZED の値を 0 に設定し、SSL 証明書を一時的に無効にします。
問題が解決しました
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 rundeploy エラー: connect->getConnection: 構成されたすべての認証方法が失敗しました
PS C:\my_files\my-project> npm run deploy
> [email protected] 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 クライアントの構成ファイルです
。resolv.conf には、DNS サーバーの IP アドレスと DNS ドメイン名の設定に使用される主なキーワードが 4 つあります。
- nameserver: DNS サーバーの IP アドレスを定義します。
- ドメイン: ローカル ドメイン名を定義します
- 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 ディスクが占有しているスペースを確認します
- ファイルシステム: ファイル システムがどのパーティションに配置されているかを示すため、この列にはデバイス名が表示されます。
- 使用中: 使用されているディスク容量を示します。
- 使用可能: 残りのディスク容量を示します。
- Use%: ディスク容量の使用量。
- マウント先: ファイル システムのマウント ポイント。ディスクがマウントされるディレクトリの場所です。
[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: used メモリ {キャッシュ (バッファとキャッシュを含む) に割り当てられた合計量。ただし、一部のキャッシュは実際には使用されない可能性があります }
-
free: 空き物理メモリ – 割り当てられていないメモリ
-
共有: 共有メモリ。一般的なシステムでは使用されないため、ここでは説明しません。
-
バッファ: システムによって割り当てられたが使用されていないバッファの数
-
キャッシュ済み: システムによって割り当てられたが使用されていないキャッシュの数
シーン11:追加予定
- 今日はここまで〜
- 友達、( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝまた明日~~
- みなさんも毎日幸せに過ごしてくださいね
記事の修正が必要な点はどなたでもご指摘ください ~
学習とWin-Winの協力に終わりはありません