Я хочу Видеть Живой журнал от Файла журнала, который используется в рамках Сценария.
у меня есть сценарий, который делает соединение 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
также могут работы.
кто-то может помочь мне?
спасибо
Выполнение 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";