2014-09-11 6 views
5

के साथ एकाधिक फ़ाइलों के साथ स्वचालित एससीपी तो मैंने इस पर कई पोस्ट देखी हैं और शायद मैंने सही नहीं देखा है।उम्मीदवार स्क्रिप्ट

मैं अपने लोकेल से रिमोट तक कई फ़ाइलों को स्कैन करने के लिए एक अपेक्षित स्क्रिप्ट का उपयोग कर रहा हूं। मैं पासवर्ड रहित लॉग इन के लिए कुंजी सेट अप नहीं करना चाहता, क्योंकि तब सर्वरों को उड़ाया नहीं जा सकता और अधिक काम से खड़ा हो गया, हाँ, मैं मुख्य सृजन को स्वचालित कर सकता था, मैं बस नहीं बल्कि। इसलिए मैं * का उपयोग करने में सक्षम होना चाहता हूं लेकिन हर बार जब मैं * का उपयोग करता हूं तो यह मुझे बताता है। एक पूर्ण नाम के बजाय * मैं उपयोग करना चाहता हूं क्योंकि संस्करण संख्या बदलती रहेगी और मैं हर बार स्क्रिप्ट को मैन्युअल रूप से बदलना नहीं चाहता हूं।

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

Killed by signal 1. 

मैं आशा करता हूं कि यह एक आसान ठीक या समाधान नहीं है। मैं बस इतना करना चाहता हूं कि इन फ़ाइलों को स्कैन करें ताकि मैं एक बटन के क्लिक के साथ एक इंस्टॉलेशन प्रक्रिया स्वचालित कर सकूं। ठनक यू किसी भी मदद

#!/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 

उत्तर

12

मुझे लगता है कि मैं और अधिक Googleिंग के साथ क्या चाहता था। ठनक आपकी मदद के लिए, उम्मीद है कि इस दूसरों

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

मुझे लगता है कि आप Tcl आदेश 'glob' इस उदाहरण में उपयोगी होने के लिए मिल जाएगा मदद करता है। –

1

आप curl का उपयोग SFTP के माध्यम से अपने दूरस्थ होस्ट करने के लिए अपने स्थानीय मेजबान से फ़ाइलों की प्रतिलिपि बनाना (सभी इरादों और उद्देश्यों के लिए SCP का उपयोग कर कॉपी करने जैसे जो एक ही है) कर सकते हैं और उपयोगकर्ता नाम निर्दिष्ट के लिए अग्रिम में और कमांड में पासवर्ड, जैसे:

curl -T /files/to/copy/* -u username:password ftps://ftpshost.domain.tld/ 
संबंधित मुद्दे