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'