本地执行的脚本可以在远程服务器上运行命令吗?

本地执行的脚本可以在远程服务器上运行命令吗?

我一直在尝试将文件部署到网络服务器的修补过程。

目前我正在使用scp将压缩的目录结构放到网络服务器上,然后cp -rf --backup=t patch* www/

例如

user$ scp patch.zip server:~
user$ ssh server
// some welcome message, I have mail!, etc...
user@server:~$ unzip patch.zip
user@server:~$ tree
.
├── www
│   ├── 1
│   ├── 1.~1~
│   ├── 2
│   ├── 3
│   ├── 4
│   └── numbers
│       └── one
└── patch
    ├── 1
    ├── 5
    └── numbers
        ├── one
        └── two
user@server:~$ cp -rf --backup=t patch/* www/
user@server:~$ tree
.
├── www
│   ├── 1
│   ├── 1.~1~
│   ├── 1.~2~
│   ├── 2
│   ├── 3
│   ├── 4
│   ├── 5
│   └── numbers
│       ├── one
│       ├── one.~1~
│       └── two
└── patch
    ├── 1
    ├── 5
    └── numbers
        ├── one
        └── two

我不确定我应该在哪里将其制作成部署脚本,例如,本地执行的脚本可以在远程服务器上运行命令吗?如果可以,该怎么做?

答案1

当然可以。

scp patch.zip server:~
ssh server "unzip patch.zip"
ssh server "cp .... "

问题是:这是否合理。您可以使用无密码 ssh 身份验证(基于密钥)轻松实现这一点。但这有很大风险。

另一种方法是使用 salt、ansible、puppet、chef 等方法...

相关内容