linux - 在 SSH 中按名称查找和替换文件或文件夹

标签 linux bash ssh

我的托管账户上有多个网站。由于存在安全层,我不能使用符号链接(symbolic link),也不能从一个帐户到另一个帐户。但是我是一组脚本,将成为同一个帐户的多个帐户。

我不想在每次进行更改时都将这些脚本上传到每个单独的 ftp 帐户,而是希望有一个简单的 bash 脚本来为我做这件事。

所以我想通过 SSH 做的是通过名称在我的托管服务器上搜索特定目录,例如“ThisUniqueFolder”,然后上传并用存储的文件的更新版本替换该目录中的所有文件在我的本地服务器上。

请记住,此目录“ThisUniqueFolder”将存在于整个托管服务器的多个不同位置。

最佳答案

您可以使用ssh 找到所有的ThisuniqueFolder,然后使用rsync 来更新它们。

使用 ssh-i identity_file 来避免 remote_host 上的 user 的密码。

#!/bin/bash
for f in `ssh -i /path/to/identity_file user@remote_host 'find /remote/search/directory -name "ThisUniqueFolder" -type d'`
do 
    rsync -avu -e 'ssh -i /path/to/identity_file' ThisUniqueFolder/ user@remote_host:$f
done

关于linux - 在 SSH 中按名称查找和替换文件或文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42848290/

相关文章:

linux - 我如何强制 screen 分离*而不是*退出/注销?

ruby - 如何解决 ruby​​ 脚本中的错误?

bash - 更新到 Ubuntu 17.04 后 bash 自动完成的奇怪错误

linux - 无法通过 SSH 连接到 Oracle 云实例

linux - 在linux中为终端设置代理

java - 无法在 Linux 中找到正确的架构类型

linux - bash 中的循环

bash - 用于检查是否有任何wifi连接的Mac脚本

windows - ssh 将端口作为参数传递时本地转发规范错误

连接远程主机然后执行系统命令的C程序