다른 파일의 사용자를 사용하여 호스트의 한 파일에서 명령 실행

다른 파일의 사용자를 사용하여 호스트의 한 파일에서 명령 실행

다른 목록의 사용자를 사용하여 목록에서 각 서버에 로그인하고 명령을 실행하는 스크립트를 만들려고 합니다. 파일에서 첫 번째 호스트를 가져오고 다른 파일에서 첫 번째 사용자로 로그인하고, 파일에서 두 번째 호스트를 가져오고 파일에서 두 번째 사용자로 로그인하여 이 작업을 수행하려면 어떻게 해야 합니까?

이것이 내가 지금까지 얻은 것입니다:

#!/bin/bash
for host in `cat hosts.txt`
do
for user in `cat users.txt` ;
do
ssh -t Natasha@$host << EOF ;
/usr/local/bin/sudo -i -u $user w ;
EOF
done
done

그러나 이는 사용자 목록의 첫 번째 호스트와 모든 사용자에 대해 명령을 실행합니다.

답변1

두 파일의 줄 수가 같은 경우

paste hosts.txt users.txt |
while read host user
do
   ...
done

paste먼저 명령을 시도하여 호스트가 올바른 사용자를 받는지 확인할 수 있습니다.

관련 정보