【问题标题】:Bash script to scp newest file in a directory on a remote server用于 scp 远程服务器目录中最新文件的 Bash 脚本
【发布时间】:2011-05-05 22:44:00
【问题描述】:

好吧,我知道如何在本地使用 find then cp 命令执行此操作,但不知道如何使用 scp 远程执行此操作。

所以知道这一点:

scp -vp me@server:/target/location/ /destination/dir/.

那个目标目录将充满数据库备份,我怎样才能告诉它找到最新的备份,并在本地 scp 呢?

【问题讨论】:

    标签: bash cron backup scp database-backups


    【解决方案1】:
    remote_dir=/what/ever
    dst=remote-system.host.name.com
    scp $dst:`ssh $dst ls -1td $remote_dir/\* | head -1` /tmp/lastmod
    

    【讨论】:

      【解决方案2】:

      在远程端编写一个脚本,使用find 找到它,然后cat 将其发送到标准输出,然后运行:

      ssh me@server runscript.sh > localcopy
      

      【讨论】:

      • 所以我远程制作了这样的东西:ls -t |头-1 | cat stdout 然后我用 ssh me@server runscript.sh > localcopy 在本地执行它...然后 cat localcopy 到一个用于文件名的变量中?
      • 没有。脚本看起来像:cat "$(ls -t | head -n 1)",然后 localcopy 就会有文件的内容。
      • 嗡嗡声似乎不需要猫,>> 做输出。所以 ls -t /var/backup|头 -n 1
      • 这将只打印文件名。为什么不首先获取文件?
      • 远程服务器总是在做新的备份,所以文件名不断变化。我需要最新的。我最终为文件名设置了一个变量,如下所示:remote_backup=ssh $dst ls -1td $remote_dir/\* | head -1| cut -d/ -f6 然后我只调用了以下内容:scp $dst:$remote_dir/$remote_backup $target
      猜你喜欢
      • 1970-01-01
      • 2019-03-09
      • 1970-01-01
      • 2019-03-28
      • 2017-09-14
      • 2020-08-31
      • 1970-01-01
      • 1970-01-01
      • 2019-01-31
      相关资源
      最近更新 更多