Запустите и завершите ХВОСТ, работающий через SSH использование Bash

Я пытаюсь наблюдать изменения файла через SSH и скопировать изменения его в локальном компьютере с помощью Bash. Я выполнил следующую команду, чтобы контролировать и скопировать:

ssh root@192.168.88.238 "tail -F /media/sdcard/SA000001.log"> ~/Desktop/Modem.log

Который работает отлично. Но затем это продолжает бежать. Я хочу завершить хвост и ssh после определенного периода (Или когда определенная строка найдена).

Я попробовал следующую команду, но она не работала:

ssh -t root@192.168.88.238 "tail -F /media/sdcard/SA000001.log && sleep 10 && exit"> ~/Desktop/Modem.log

Я также пытался передать exit и значение ASCII CTRL+C через эхо, но не могло закончиться/уничтожить хвост и ssh.

Затем я попробовал следующее:

#!/bin/sh 

ssh -t root@192.168.88.238 "tail -F /media/sdcard/SA000001.log | while read TEMPLOGLINE"> ~/Desktop/Modem.log

do
   [[ "${TEMPLOGLINE}" == *"temp"* ]] && pkill -P $$ tail
done

exit

Я также попробовал это:

#!/bin/sh 

ssh -t root@192.168.88.238 "tail -F /media/sdcard/SA000001.log"> ~/Desktop/Modem.log

ssh -t root@192.168.88.238 "/X03"
ssh -t root@192.168.88.238 "exit"

Вот мой файл удара в данный момент:

#!/bin/sh 

ssh -t root@192.168.88.238 "tail -F /media/sdcard/SA000001.log"> ~/Desktop/Modem.log

Какие-либо предложения о том, как я должен возобновить это?

Заранее спасибо.

3
задан 18 August 2017 в 14:06

2 ответа

Это кажется на поиск чего-то вроде этого:

#!/bin/bash
ssh root@192.168.88.238 tail -F /media/sdcard/SA000001.log | while read line; do
    echo "$line"
    if [[ $line =~ 'temp' ]]; then
        exit
    fi
done

Сохраняют сценарий выше как foo.sh или что бы то ни было, делают это исполняемым файлом (chmod a+x foo.sh) и затем выполняют его:

foo.sh > ~/Desktop/Modem.log
4
ответ дан 1 December 2019 в 13:23

Это - команда, необходимо сделать задание:

ssh USER@HOST "bash -c 'sed '/PATTERN/q' <(tail -F /path/to/dest/log)'"> inlocal.log

можно использовать awk вместо этого в качестве после также:

ssh USER@HOST "bash -c 'awk '1;/PATTERN/{exit}' <(tail -F /path/to/dest/log)'"> inlocal.log
3
ответ дан 1 December 2019 в 13:23

Другие вопросы по тегам:

Похожие вопросы: