引言
作为前端开发人员,我们经常需要在生产服务器上部署一些 web 应用或者修改服务器上的配置文件。通常情况下,我们会使用 ssh 作为远程连接工具。
然而,我们可能会遇到一些问题,如何精确地根据代码去部署应用,如何快速地修改一个或多个服务器的配置文件.
在这篇文章中,我们将介绍 npm 包 ssh2cm(ssh command manager)的使用。它能够让我们更容易地在远程服务器上执行命令和文件操作,同时提供了很多灵活的配置选项。
安装
无论是在 Linux, macOS 还是 Windows OS 上,我们都可以使用 npm 来安装 ssh2cm :
npm install ssh2cm
使用
连接远程服务器
首先,我们需要使用 ssh2cm 建立一个 ssh 连接。我们可以通过以下配置项来连接远程服务器:
const connection = { host: 'localhost', port: 22, username: 'root', password: 'password', };
其中,host 是我们要连接的服务器地址,port 是服务器 ssh 服务的端口。我们需要提供 username 和 password 区配,或者 SSH key,在连接时使用。
执行命令
建立好连接之后,我们可以使用 execCommand() 方法来在远程服务器上执行命令:
-- -------------------- ---- ------- ----- ------ - ------------------ ----- ---------- - - --- -- -- --------- ----- ---------- - ------------------- -------------------------- ----------------- -- - -------------------- --- -- --- -- ----- -- -- ---------- - ---- ----- --- --- - ----- - -- ----------- -- ---- ----- ---- --- - ----- -- -- ---------- - ---- ----- ---- --- - ----- -------- -- ---
其中,我们传入了要运行的命令,并将输出返回给回调函数。在这个例子中,我们将服务器上以“列表”的形式列出当前目录下的所有文件。
我们也可以使用 promises 异步获取输出,就像上面的例子那样。如果没有出错,execCommand() 返回的是一个表示输出的字符串。
SCP
我们可以使用 ssh2cm 的 SCP(Secure Copy)API 来在本地和服务器之间传输文件。
以下也是一个使用 scp() 方法上传文件和下载多个文件的示例:
-- -------------------- ---- ------- ----- ------ - ------------------ ----- ---- - ---------------- ----- ------- - - - ----- --------- ------ ----------------------- --------------------- ------- ---------------- -- - ----- ----------- ------- ------------------- ------ ----------------------- ------------------------ -- -- ----- ---------- - - --- -- -- --------- ----- ---------- - ------------------- ----------------------- ---------- -- ------------------ ----------------------------- -- --- -- - -- ----------------- --- ---------- -- ---------------------------------- -- ----------------- -------- -- ------------------------------- -- -
在这个例子中,我们传入要执行的操作列表,然后通过 scp() 方法来执行它。在这个例子中,我们上传了一个 name.txt 文件到“/etc/name.txt”,然后下载了一个“/etc/version.txt”的文件,并将它存储到本地的“/tmp/ssh2cm/download/version.txt”。
结尾
ssh2cm 可以说是一个非常强大和丰富的 npm 包。它可以让我们更容易地对远程服务器进行文件操作和命令行操作。上面的例子只是 ssh2cm 功能的一个极小子集。ssh2cm 还有很多功能等待我们去探索。
希望 ssh2cm 可以帮助您的开发工作,提高您的工作效率。例如,在部署应用程序时,可以轻松地复制文件和启动进程。如有任何问题,请留言,并查看 ssh2cm 的文档。
参考
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600670a78ccae46eb111f2cc