从远程服务器复制最新文件

从远程服务器复制最新文件

.doc除了其他类型的文件之外,远程服务器(支持 SCP)上还有一个文件集合。

.doc我正在尝试编写一个脚本来从远程服务器检索最新(最近修改的)文件。我当前工作目录的路径不能是绝对路径,因为我的脚本可能部署在另一台服务器中。

我可以分两步部分解决问题:

  1. 将所有.doc文件从远程服务器复制到我的本地~/Downloads文件夹:

    scp -i key.pem abc@xyz:/tmp/*.doc ~/Downloads/
    
  2. 选择最新的文件~/Downloads并将其复制到所需的文件夹:

    cd ~/Downloads
    latest_file=$(ls -t *.doc | head -n 1)
    cp -p "$latest_file" /current working directory
    

如何通过一条语句将.doc远程服务器 xyz 文件夹下的最新文件复制/tmp到本地计算机,而不将所有文件下载到中间文件夹中?

答案1

我不太清楚你的问题是什么,但如果你尝试复制到当前目录,那么只需使用.引用当前目录,以便你的命令是:

scp -i key.pem abc@xyz:/tmp/*.doc .

答案2

让我们看看这是否能解决您的问题。制作一个脚本。

FILE=`ssh abc@xyz ls -ht /tmp/*.doc | head -n 1`
rsync -avz -e ssh abc@xyz:"$FILE" .

这将在远程服务器上运行命令“ls -ht /tmp/*.doc | head -n 1”并显示最新的文档。将指定文件从远程服务器同步到当前目录。 ssh/rsync 还会询问您用户“abc”的密码,最好使用无密码登录或密钥文件“key.pem”。

相关内容