Uzak bir mastermakineye bir SSH oturumu ve sonra başka bir iç SSH oturumu masteriçin bazı uzaktan her birine slavesve sonra belirli bir dizini silmek ve yeniden oluşturmak için 2 komutları yürütmek gerekiyordu yerel bir makine var.
Yerel makinede master için şifresiz SSH ve master'da slave'lerde şifresiz SSH bulunduğunu unutmayın. Ayrıca tüm ana bilgisayar adları .ssh/configyerel / ana makinelerde bilinir ve kölelerin ana bilgisayar adları slaves.txtyerel olarak bulunur ve onları oradan okurum.
Yani yaptığım ve çalıştığım şey şu:
username="ubuntu"
masterHostname="myMaster"
while read line
do
#Remove previous folders and create new ones.
ssh -n $username@$masterHostname "ssh -t -t $username@$line "rm -rf Input Output Partition""
ssh -n $username@$masterHostname "ssh -t -t $username@$line "mkdir -p EC2_WORKSPACE/$project Input Output Partition""
#Update changed files...
ssh -n $username@$masterHostname "ssh -t -t $username@$line "rsync --delete -avzh /EC2_NFS/$project/* EC2_WORKSPACE/$project""
done < slaves.txt
Bu küme Amazon EC2'de ve her bir yinelemede önemli bir gecikmeye neden olan 6 SSH oturumu oluşturulduğunu fark ettim. Daha az SSH bağlantısı elde etmek için bu 3 komutu 1'de birleştirmek istiyorum. Bu yüzden ilk 2 komutu birleştirmeye çalıştım
ssh -n $username@$masterHostname "ssh -t -t $username@$line "rm -rf Input Output Partition && mkdir -p EC2_WORKSPACE/$project Input Output Partition""
Ancak beklendiği gibi çalışmaz. İlkini ( rm -rf Input Output Partition) çalıştırıyor gibi görünüyor ve sonra oturumdan çıkıyor ve devam ediyor. Ne yapabilirim?
-Jatlama ana makinenizi tanımlayacak seçeneği kullanabilirsiniz .