Você está correto, são suas aspas. Você está aninhando aspas simples sem escapar. Tente isto:
-e "sshpass -p P4ssw0rd ssh [email protected] 'cat /opt/logs/exaple.log | grep \'any problem\''" \
Devo me conectar ao servidor todos os dias pelo ssh e criei um script para exibir os logs.
Este é o meu código:
#!/bin/bash
A='date +%Y'
M='date +%m'
D='date +%d'
gnome-terminal --geometry=82x11 \
--tab --title "NAMEServer" -e "sshpass -p P4ssw0rd ssh [email protected] 'tail -f /opt/logs/example.$A-$M-$D.log'" \
--tab --title "NAMEServer" -e "sshpass -p P4ssw0rd ssh [email protected] 'tail -f /opt/logs/example.$A-$M-$D.log'"
Mas se eu tentar filtrar as palavras com o grep, não funcionará. Exemplo:
-e "sshpass -p P4ssw0rd ssh [email protected] 'tail -f /opt/logs/example.$A-$M-$D.log | grep 'not fetch''" \
ou
-e "sshpass -p P4ssw0rd ssh [email protected] 'cat /opt/logs/exaple.log | grep 'any problem''" \
Eu acho que o problema são as aspas, mas, qual uso ?, eu tentei com ´´ ' ' " "
.
Você está correto, são suas aspas. Você está aninhando aspas simples sem escapar. Tente isto:
-e "sshpass -p P4ssw0rd ssh [email protected] 'cat /opt/logs/exaple.log | grep \'any problem\''" \
Tente adicionar o bash no final como:
e "sshpass -p P4ssw0rd ssh [email protected] 'tail -f /opt/logs/example.$A-$M-$D.log | grep 'not fetch'; bash' " \
Tags ssh bash shell-script