SCP文件传输文件优先级

时间:2016-11-22 23:36:30

标签: bash macos automation expect scp

我有大约150多个带有日期的文件夹,我需要每天上传到不同的服务器。我需要在上传过程中优先处理更新的文件夹,因为它们使用最多,我可以在其余文件上传时进行处理。第一次运行脚本时,必须根据文件夹名称将每个文件夹从最新到最旧下载。以下是一些示例文件夹名称:

2016-01-02  2016-01-02  2016-01-03  2016-01-04  2016-01-05  2016-01-06 
2016-02-07  2016-02-11  2016-02-13  2016-02-18  2016-02-23  2016-02-28  
2016-03-07  2016-03-16  2016-03-21

所有这些文件夹都在名为Files的文件夹中,当我运行时:scp -r /Users/$username/Files server@192.168.1.120:/var/www/html/backups 首先上载具有旧文件名的文件夹。 (示例顺序:2016-01-02,2016-01-02,2016-01-03)我的目标是将其反转,以便文件夹以相反的顺序上传(例如:2016-03-21,2016-03-16,2016-03-07)是否有任何技巧可以做到这一点? **最好使用#!/usr/bin/expect -f my作为我当前的脚本,每次运行命令时都不必输入密码。这是我目前使用的:

#!/usr/bin/expect -f
set username [exec id -un]
spawn scp -r /Users/$username/Files root@192.168.1.123:.
#######################
expect {
 -re ".*es.*o.*" {
    exp_send "yes\r"
    exp_continue
  }
 -re ".*sword.*" {
    exp_send "password\r"
  }
}
interact

1 个答案:

答案 0 :(得分:-1)

不确定scp是否具有此功能,但您可以通过向其添加一个小逻辑来自行完成:

for folder in $(ls -t /Users/$username/Files); do
    sshpass -p <password> scp -o StrictHostKeyChecking=no -r /Users/$username/Files/$folder server@192.168.1.120:/var/www/html/backups
done