जब आप इसे एक ssh सत्र के अंदर कर सकते हैं, तो चल रहे आदेशों के साथ प्रतिलिपि फ़ाइलों को संयोजित करना थोड़ा मुश्किल है।
इस कार्य से निपटने का सबसे आसान तरीका तीन ऑपरेशनों के लिए अलग-अलग SSH सत्र चलाना है:
rsync -a inputs/ machineB:inputs/
ssh machineB 'some command -i inputs -o outputs'
rsync -a machineB:outputs/ outputs/
इसके लिए मशीनबी को तीन बार प्रमाणित करने की आवश्यकता होती है। कई बार प्रमाणित करने से बचने के लिए अनुशंसित तरीका ओपनएसएसएच के आधुनिक संस्करणों में कनेक्शन साझा करने की सुविधा का उपयोग करना है: बी के लिए एक मास्टर कनेक्शन को एक बार और सभी के लिए शुरू करें, और एसएसएच को स्वचालित रूप से उस मास्टर कनेक्शन पर पिग्गीबैक करने दें। अपने लिए एक पंक्ति जोड़ें ControlMaster auto
औरControlPath
~/.ssh/config
फिर पृष्ठभूमि में एक मास्टर कनेक्शन शुरू करें , फिर अपने कार्य करें।
ssh -fN machineB # start a master connection in the background
# Subsequent connections will be slaves to the existing master connection
rsync -a inputs/ machineB:inputs/
ssh machineB 'some command -i inputs -o outputs'
rsync -a machineB:outputs/ outputs/
फ़ाइलों की प्रतिलिपि बनाने के लिए scp या rsync का उपयोग करने के बजाय, SSHFS के अंतर्गत दूरस्थ फ़ाइल सिस्टम को माउंट करना आसान हो सकता है । यह एक मास्टर कनेक्शन स्थापित करने का ख्याल रखेगा, वैसे (यह मानते हुए कि आपने अपना ~/.ssh/config
संकेत ऊपर दिया है)।
mkdir /net/machineB
sshfs machineB: /net/machineB
cp -Rp inputs /net/machineB/
ssh machibeB 'some command -i inputs -o outputs'
cp -Rp /net/machineB/outputs .
cat file | ssh user@host 'cat > /destination/of/file; /path/to/script &>/dev/null; cat results' > /destination/of/results