파일전송하는데 FTP 만한게 없지만… 부득이하게 FTP 를 사용하지 못할경우 파일전송하는데 여러모로 유용한 SCP 가 있죠.
SSH 기반으로 전송이 이루어지다 보니…속도는 조금 많이 떨어지지만 서버에서 자주 이용하는 명령어중에 하나입니다. 단 동일한 작업을 여러번 반복하기에는 아래처럼 사용할수 있지만….번거롭기는 하죠.
for i in ${host1} ${host2} ${host3} ;do
scp /root/smileserv.txt $i:/home/smileserv
done
PSCP는 SCP와 사용법이 동일하며 전송할 대상을 그룹으로 만들어 여러 서버로 동시에 진행할수있어 동시에 동일한 작업을 반복하는데 유용하게 사용할수 있습니다.
관련 URL
http://www.theether.org/pssh/
pscp (parallel-scp)
파일로 전송할 서버 그룹을 만들어 동시에 scp 명령어 사용
INSTALL
Ubuntu
# apt-get install pssh
CentOS & RHEL
# yum install pash
사용법
전송할 서버리스트 파일작성은 {아이피}:{포트} 형태로 작성
# cat smileserv.txt
10.0.0.10:22
10.0.0.12:22
10.0.0.44:22
parallel-scp -h <파일명> -l <사용자> -Av <전송할 파일명> <전송될 서버에서 파일경로>
# parallel-scp -h smileserv.txt -lsmileserv -Av cloudv.kr /home/smileserv
자주 사용되는 옵션은 빨간색으로 표시해두었으니 참고하시면 됩니다.
# parallel-scp –help
Usage: parallel-scp [OPTIONS] -h hosts.txt local remote
Options:
–help show this help message and exit
-h HOST_FILE, –hosts=HOST_FILE
hosts file (each line “[user@]host[:port]”)
-H HOST_STRING, –host=HOST_STRING
additional host entries (“[user@]host[:port]”)
-l USER, –user=USER username (OPTIONAL)
-p PAR, –par=PAR max number of parallel threads (OPTIONAL)
-o OUTDIR, –outdir=OUTDIR
output directory for stdout files (OPTIONAL)
-e ERRDIR, –errdir=ERRDIR
output directory for stderr files (OPTIONAL)
-t TIMEOUT, –timeout=TIMEOUT
timeout (secs) (0 = no timeout) per host (OPTIONAL)
-O OPTION, –option=OPTION
SSH option (OPTIONAL)
-v, –verbose turn on warning and diagnostic messages (OPTIONAL)
-A, –askpass Ask for a password (OPTIONAL)
-x ARGS, –extra-args=ARGS
Extra command-line arguments, with processing for spaces, quotes, and backslashes
-X ARG, –extra-arg=ARG
Extra command-line argument
-r, –recursive recusively copy directories (OPTIONAL)
Example: pscp -h hosts.txt -l irb2 foo.txt /home/irb2/foo.txt