ssh
원격 호스트에 스크립트를 실행하고 zcat
명령을 실행 하려고 합니다 .
#!/bin/bash
for server in abc.net
do
ssh $server "echo $svr"; zcat /tmp/abc.log.gz|egrep "15 10:0[0-9]"|cut -d'|' -f6|cut -d':' -f1|grep Pattern |sort|uniq -c
done
결과는 다음과 같습니다. SSH 메시지 삭제:
Password:
abc.net
zcat: /tmp/abc.log.gz: No such file or directory
파일이 원격 컴퓨터에 abc.log.gz
존재합니다./tmp
답변1
일련의 명령을 원격으로 실행하려면 전체 명령을 인용해야 합니다.
#!/bin/bash
for server in abc.net; do
echo "$server"
ssh "$server" 'zcat /tmp/abc.log.gz|egrep "15 10:0[0-9]"|cut -d\| -f6|cut -d: -f1|grep Pattern |sort|uniq -c'
done
또는 원격이 아닌 로컬로 모든 출력을 분할하고 사이드 처리할 수 있습니다.
#!/bin/bash
for server in host1.example.com host2.example.com; do
ssh "$server" 'zcat /tmp/abc.log.gz'
done | egrep "15 10:0[0-9]" |cut -d'|' -f6 | cut -d: -f1 | grep Pattern | sort | uniq -c'