Вы можете поместить все ваши команды в отдельный скрипт на вашем "главном" сервере.
Основной сценарий
#!/bin/bash
rm -rf "Input Output Partition"
mkdir -p "EC2_WORKSPACE/$project Input Output Partition"
Затем в вашем ssh-скрипте назовите это так :SSH-скрипт
username="ubuntu"
masterHostname="myMaster"
while read line
do
ssh -n $username@$masterHostname "ssh -t -t $username@$line < /path/to/masterscript.sh"
ssh -n $username@$masterHostname "ssh -t -t $username@$line "rsync --delete -avzh /EC2_NFS/$project/* EC2_WORKSPACE/$project""
done < slaves.txt
ИЛИ если все файлы должны быть на исходной машине, вы можете сделать что-то вроде этого:
сценарий1
script2="/path/to/script2"
username="ubuntu"
while read line; do
cat $script2 | ssh -t -t $username@line
done < slaves.txt
сценарий2
#!/bin/bash
rm -rf "Input Output Partition"
mkdir -p "EC2_WORKSPACE/$project Input Output Partition"
rsync --delete -avzh "/EC2_NFS/$project/* EC2_WORKSPACE/$project"
ssh-скрипт
script1="/path/to/script1"
username="ubuntu"
masterHostname="myMaster"
cat $script1 | ssh -n $username@$masterHostname
Предикат -prune
сокращает каталоги -, в этом случае -name
будет соответствовать начальному каталогу .
и, следовательно, удаляет все дерево.
То, что вы хотите сделать, это просто отменить совпадение -name
:
find. -maxdepth 1 ! -name '.*'
или
find. -maxdepth 1 -not -name '.*'