alt*_*as5 3 bash scp brace-expansion
我经常将文件从开发环境更新到不同服务器中的生产环境,因此两个主机中的路径相同,更新文件并为scp
参数指示相同路径成为一种重复过程。
有没有办法使用大括号扩展或其他带有scp
参数的技术?我知道其中一个,origin 或 destination 必须user@host:
在开头包含。
我正在尝试做的是:
scp user@{dev-server,production-server}:/path/to/file
Run Code Online (Sandbox Code Playgroud)
我提出了两种并非全部使用 scp 的解决方案:
1. 使用.ssh/config来帮助
即:把这样的东西放在你的 .ssh/config 中
Host p
HostName production.domain.com
Host d
HostName development.domain.com
Run Code Online (Sandbox Code Playgroud)
然后你可以缩短你的 scp 命令:
scp user@d:/path user@p:/path
Run Code Online (Sandbox Code Playgroud)
2. 使用git等源代码控制软件。因此,当您完成调试和编码等工作时,您可以这样做(简化):
git add /path/to/my_file
git commit -m "new version and features done"
git push production master
Run Code Online (Sandbox Code Playgroud)
(只需设置您的 git 以使用 ssh)
3. 使用 qscp 或 quick-scp - 一个专为您的方便而设计的 bash 脚本 :) https://github.com/zladuric/quick-scp 基本上,获取 qscp 文件并使其可执行。(并将默认值更改为您的环境)。
它将采用一个强制性参数和两个可选参数。例子:
./qscp file # it will use defaults
./qscp path/to/dir dest.server.com # uses default source, but to other dest
./qscp /abs/path/to/file dest.srv.com src.srv.com # takes both dest and source server args
Run Code Online (Sandbox Code Playgroud)
scrpt 应该很容易根据您的特定需求进行定制,但它还不是非常健壮。您可能需要调整 scp 二进制文件、ssh_key 文件或类似文件的位置。
他们的苹果呢?:)
归档时间: |
|
查看次数: |
2872 次 |
最近记录: |