Представление живое входит в систему Linux

Я хочу Видеть Живой журнал от Файла журнала, который используется в рамках Сценария.

у меня есть сценарий, который делает соединение VPN к CISCO Сервером VPN и затем Копией файлы к Удаленному Местоположению. для того, чтобы иметь список файлов, который был отправлен, в рамках моего Сценария Копии VPN, я также делаю файлы журнала, и местоположение Файла журнала находится в tmp каталог. мой VPN copy script работает действительно прекрасный без любой проблемы.

но теперь то, что я пытаюсь сделать, я выполняю эту команду

watch tail -n 15 /tmp/vpn.log
tail -f /tmp/vpn.log

по терминалу и хочет видеть Живой журнал файлов журнала, и в этом файле журнала я буду видеть информацию о передаче файлов к удаленному местоположению. но моя проблема состоит в том, когда я работаю

watch tail -n 15 /tmp/vpn.log
tail -f /tmp/vpn.log 

эти команды и затем запущенный мой Скрипт затем мои файлы doestn передают удаленному местоположению и когда я не работаю tail управляйте по файлам журнала затем моим VPN copy script работы без любой проблемы.

так в основном хочу, что я могу просмотреть живой журнал и мой vpn copy script также могут работы.

кто-то может помочь мне?

спасибо

-1
задан 3 September 2015 в 03:47

1 ответ

Выполнение watch tail -n 15 /tmp/vpn.log / tail -f /tmp/vpn.log в сценарии останавливает свое выполнение, потому что при выполнении watch tail -n 15 /tmp/vpn.log / tail -f /tmp/vpn.log оболочка занята, работая watch tail -n 15 /tmp/vpn.log / tail -f /tmp/vpn.log самостоятельно;

Обычно решение могло выполнять процесс как фоновое задание или работать, процесс отдельно от текущей оболочки любым означают, однако так как необходимо видеть вывод рассматриваемого процесса, хороший способ сделать, это должно было бы выполнить его в новом gnome-terminal экземпляр:

#!/bin/bash
touch /tmp/vpn.log
gnome-terminal -e 'bash -c "echo $ > pid; tail -f /tmp/vpn.log"'
echo "Starting to output to /tmp/vpn.log"
echo line1 >> /tmp/vpn.log
sleep 1
echo line2 >> /tmp/vpn.log
sleep 1
echo line3 >> /tmp/vpn.log
kill -15 "$(< pid)"
rm pid
exit 0
  • touch /tmp/vpn.log: создает файл с 0 длинами под названием "vpn.log" в /tmp, если не существующий, или обновляет /tmp/vpn.log время доступа и время изменения если существующий; это сделано, чтобы гарантировать, что tail -f [...] не выйдет на ошибке;
  • gnome-terminal -e 'bash -c "echo $ > pid; tail -f /tmp/vpn.log"': мечет икру gnome-terminal экземпляр и мечет икру bash экземпляр в gnome-terminal экземпляр, который производит его PID в файл, названный "pid" и выполнениями tail -f /tmp/vpn.log;
  • kill -15 "$(< pid)": отправляет сигнал SIGTERM в bash выполнение экземпляра в gnome-terminal экземпляр;
  • rm pid: удаляет "pid";

screenshot

1
ответ дан 28 July 2019 в 18:00

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

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