2016-11-22 2 views
0

У меня есть около 150 + папок с датами на них, которые мне нужно ежедневно загружать на разные серверы. Мне нужны более поздние папки, приоритетные во время загрузки, поскольку они используются больше всего, и я могу работать, пока остальная загрузка. В первый раз, когда я запускаю сценарий, каждая папка должна быть загружена от самого нового до самого старого на основе имени папки. Вот некоторые имена папок выборки:Приоритет файла передачи файлов SCP

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 [email protected]:/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 [email protected]:. 
####################### 
expect { 
-re ".*es.*o.*" { 
    exp_send "yes\r" 
    exp_continue 
    } 
-re ".*sword.*" { 
    exp_send "password\r" 
    } 
} 
interact 
+3

Не уверена, что вы на самом деле спросили вопрос здесь, но похоже, что вы хотите 'rsync', а не' scp'. –

+1

, пожалуйста, обновите свой Q, чтобы указать, изменили ли старые папки данные (всегда/иногда/никогда). Если вы хотите пропустить папки, которые уже были отправлены, это другой вопрос. Пожалуйста, уточните (в теле вашего Q я бы предпочел удалить этот комментарий, как только у вас будет четкое Q). Удачи. – shellter

+0

@shellter Я добавил более подробную информацию. Надеюсь, что этого достаточно. – evilpanda

ответ

-1

Не уверен, что если УППЫ имеют эту функцию, но вы можете сделать это самостоятельно, добавив небольшую логику к нему:

for folder in $(ls -t /Users/$username/Files); do 
    sshpass -p <password> scp -o StrictHostKeyChecking=no -r /Users/$username/Files/$folder [email protected]:/var/www/html/backups 
done 
+0

Может показаться глупым вопросом, но этот питон или в bash? @Waman – evilpanda

+1

nope совсем нет! справедливый вопрос! это сценарий оболочки (bash) – Waman

+0

Теперь, если бы это можно было сделать только в скрипте. Таким образом, он может быть автоматизирован, чтобы не требовать пароль. (Я не могу использовать ключи rsa) @Waman – evilpanda

Смежные вопросы