Я пытаюсь выполнить сценарий для 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
на удаленном компьютере
Если вы хотите удаленно выполнить серию команд, всю серию команд необходимо заключить в кавычки:
#!/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'