2014-09-11 19 views
5

Vì vậy, tôi đã thấy nhiều bài đăng về điều này và có thể tôi chưa thấy đúng tệp.Tự động hóa SCP với nhiều tệp với tập lệnh mong đợi

Tôi đang sử dụng tập lệnh mong đợi để quét nhiều tệp từ ngôn ngữ của tôi sang điều khiển từ xa. Tôi không muốn thiết lập các khóa để đăng nhập không mật khẩu, bởi vì sau đó các máy chủ không thể bị thổi bay đi và đứng lên với nhiều công việc hơn, vâng tôi có thể tự động tạo khóa, tôi sẽ không thích. Vì vậy, tôi muốn để có thể sử dụng * nhưng mỗi khi tôi sử dụng * nó nói với tôi. Lý do tôi muốn sử dụng * thay vì tên đầy đủ là vì số phiên bản sẽ tiếp tục thay đổi và tôi không muốn tự thay đổi kịch bản mỗi lần.

/path/{Install.sh,programWithVerionAfter*\}: No such file or directory 

Killed by signal 1. 

Tôi hy vọng đây là cách khắc phục hoặc giải pháp dễ dàng. Tất cả tôi muốn làm là scp những tập tin này để tôi có thể tự động hóa một quá trình cài đặt với một nút bấm. Thankyou trước cho bất kỳ sự giúp đỡ

#!/usr/bin/expect -f 

spawn scp /path/\{Install.sh,programWithVerionAfter*\} "[email protected]:/tmp/. 
expect { 
    -re ".*es.*o.*" { 
    exp_send "yes\r" 
    exp_continue 
    } 
    -re ".*sword.*" { 
    exp_send "Password\r" 
    } 
} 
interact 

Trả lời

12

Tôi đã tìm thấy những gì tôi muốn với googleing nhiều hơn nữa. Thankyou giúp đỡ của bạn, hy vọng điều này sẽ giúp những người khác

http://www.linuxquestions.org/questions/linux-general-1/scp-with-wildcard-in-expect-834813/

#!/usr/bin/expect -f 

spawn bash -c "scp /path/* [email protected]:/tmp/" 
expect { 
    -re ".*es.*o.*" { 
    exp_send "yes\r" 
    exp_continue 
    } 
    -re ".*sword.*" { 
    exp_send "Password\r" 
    } 
} 
interact 
+0

Tôi nghĩ rằng bạn sẽ tìm thấy Tcl lệnh 'glob' là hữu ích trong trường hợp này. –

1

Bạn có thể sử dụng curl để sao chép các tập tin từ máy chủ địa phương để máy chủ từ xa của bạn thông qua SFTP (mà là giống như sao chép sử dụng scp cho tất cả các tính năng), và chỉ định tên người dùng và mật khẩu trong lệnh, như vậy:

curl -T /files/to/copy/* -u username:password ftps://ftpshost.domain.tld/ 
Các vấn đề liên quan