编写 SSH 脚本并运行命令

编写 SSH 脚本并运行命令

我每天必须通过 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' " \

相关内容