我每天必须通过 ssh 连接到服务器,并且我编写了一个脚本来显示日志。
这是我的代码:
#!/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'"
但如果我尝试用 grep 过滤单词,则不起作用。例子:
-e "sshpass -p P4ssw0rd ssh [email protected] 'tail -f /opt/logs/example.$A-$M-$D.log | grep 'not fetch''" \
或者
-e "sshpass -p P4ssw0rd ssh [email protected] 'cat /opt/logs/exaple.log | grep 'any problem''" \
我认为问题是引号,但是,用哪个?,我尝试过´´ ' ' " "
。
答案1
你说得对,就是你的引号。您正在嵌套单引号而不转义。尝试这个:
-e "sshpass -p P4ssw0rd ssh [email protected] 'cat /opt/logs/exaple.log | grep \'any problem\''" \
答案2
尝试在末尾添加 bash,如下所示:
e "sshpass -p P4ssw0rd ssh [email protected] 'tail -f /opt/logs/example.$A-$M-$D.log | grep 'not fetch'; bash' " \