Сценарий Bash для выхода (tail -f имя_файла.log), если встречается строка в файле, совпадающая с определенной.

Да. Вот как это сделать.

1 )На вашем компьютере сгенерируйте пару ключей RSA длиной 2048 -битов:

ssh-keygen -t rsa -b 2048 -N ''

2 )На удаленном сервере SSH разрешите аутентификацию с открытым ключом, установив PubkeyAuthentication yesв /etc/ssh/sshd_config

.

3 )На своем компьютере скопируйте открытый ключ на SSH-сервер:

ssh-copy-id yourlogin@sshserver 

Обратите внимание, что вы должны не копировать на SSH-сервер свой закрытый ключ, а только открытый ключ.

1
01.03.2020, 21:39
2 ответа
#!/bin/bash

p1="Abaqus/Analysis exited with errors"
p2="Abaqus JOB filename COMPLETED"

if tail /tmp/filename.log | grep -we "$p1" -we "$p2" > /dev/null 2>&1; then
    echo "pattern found"
    #....do somenthing - what you need to do....
else
    echo "pattern not found"
fi

Бесконечный цикл:

while true; do
    if tail /tmp/filename.log | grep -we "$p1" -we "$p2" > /dev/null 2>&1; then 
       echo "pattern found !"
       #....do something here....
       break
    fi
    sleep 1
done
0
28.04.2021, 23:21
tail -f filename.log | sed '/Abaqus JOB filename COMPLETED/q'

Что касается «зачем это кому-то нужно?», то это апеллирует к отсутствию воображения :, потому что оно может прокручиваться слишком быстро, и вы можете его пропустить. Но вы все еще хотите проверить его прогресс. И вы все еще хотите, чтобы его последняя часть была на вашем экране.

1
28.04.2021, 23:21

Теги

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