scp 여러 기기의 파일 다운로드
1717 단어 scp
사용 방법:
sh scp.sh
username: 당신의 ssh가 목표 기계로 가는 비밀번호입니다.host1,host2: 목표 기계의 IP 또는 기계 이름, 쉼표 분할.log_file: 대량으로 다운로드할 로그의 절대 경로입니다.
실행 후, 프로그램은 목표 기계의 비밀번호를 입력하라고 알립니다 (여기 여러 기계의 ssh 사용자 이름 비밀번호가 같고, 이전에 ssh 연결을 설정해야 했습니다. yes/no 상호작용을 할 필요가 없습니다)
scp.sh 주 프로그램:
#!/bin/bash
if [ $# != 3 ] ;then
echo "usage: "
exit 1
fi
stty -echo #
read -p "Please enter target hosts' passwd of $1:" passwd
stty echo
echo
dirpath=`dirname $0`
#echo $dirpath
$dirpath/scp.exp $1 $2 $passwd
expect 스크립트:
#!/usr/bin/expect -f
set user [lindex $argv 0]
set hosts [lindex $argv 1]
set logfile [lindex $argv 2]
set passwd [lindex $argv 3]
set timeout 10
set hostlist [split $hosts ","] # host
set slashIdx [expr [string last / $logfile] + 1]
set filename [string range $logfile $slashIdx end] #
foreach h $hostlist {
set hostfile $filename
spawn scp $user@$h:$logfile ./$filename.$h
expect "*Enter passphrase for key*" { # , password: . yes/no
send "$passwd\r"
send "\r"
}
expect "*%*" {set timeout -1 ; puts "\rtrasmitting..."}
expect eof { #
puts "\rtransmit successfully!"
set timeout 10
}
}
예:
시스템 로그 2대 가져오기 수행:
./scp.sh root host1,host2/data/logs/access.log
스크립트 실행 디렉터리에 기계 로그 2대 다운로드
로그 접미사는 기계 이름으로 끝납니다.
access.log.host1
access.log.host2
access.log.host3
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
AWS EC2에 Postgres를 설치하고 EC2에서 tsv 파일을 Postgres에로드하고 싶습니다.· AWS의 리전은 버지니아 북부를 사용 · 인스턴스 크기는 t2.micro를 사용합니다. ・비밀키를 작성 개인 키의 권한을 600으로 변경 모드 (권한 변경) aws 서버에 들어가기 Postgresql 설치 초기 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.