Skip to content

Instantly share code, notes, and snippets.

@namkyu
Last active February 7, 2018 05:40
Show Gist options
  • Save namkyu/c497ad532252dba206f30fcd64dadae7 to your computer and use it in GitHub Desktop.
Save namkyu/c497ad532252dba206f30fcd64dadae7 to your computer and use it in GitHub Desktop.
linux utils #linux_utils

여러대의 원격 장비에 command를 실행하고 싶을 때 (실행에 대한 output 가능) 서버파일리스트의 포멧은 계정@172.19.136.18 과 같이 기록한다.

cmd.sh

#!/bin/sh

if [ $# -lt 2 ]
then
    echo "Usage : $0 {명령어} {서버파일리스트}"
    exit 1
fi

servers=`cat $2`

for ip in $servers
do
    echo "-------------------------------------------------"
    echo "ssh ${ip} $1"
    echo "-------------------------------------------------"
    ssh ${ip} "$1"
    echo "\n"
done

servers 파일

[email protected]
[email protected]
[email protected]

업로드

#!/bin/sh

if [ $# -lt 3 ]
then
    echo "Usage : $0 {로컬파일or디렉토리} {원격경로} {서버파일리스트}"
    exit 1
fi

servers=`cat $3`

for server in $servers
do
    echo "-------------------------------------------------"
    echo "scp -r $1 ${server}:$2"
    echo "-------------------------------------------------"
    scp -r $1 ${server}:$2
    echo "\n"
done

다운로드

#!/bin/sh

if [ $# -lt 3 ]
then
    echo "Usage : $0 {원격파일경로} {로컬경로} {서버파일리스트}"
    exit 1
fi

servers=`cat $3`
file_name=`basename $1`

for server in $servers
do
    echo "-------------------------------------------------"
    echo "scp ${server}:$1 $2/${server}_${file_name}"
    echo "-------------------------------------------------"
    scp ${server}:$1 $2/${server}_${file_name}
    echo "\n"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment