Оказывается, проблема заключалась в том, что в моей системе работало несколько серверов TFTP, и я не настраивал правильный.
Всем, у кого есть эта проблема, я предлагаю выполнить команду, подобную ps ax | grep tftp
. Часто он также сообщает вам, какой каталог используется в качестве корневого для TFTP-сервера.
Команда
ESBLOGENTRY=`top -b -n 1 -c|grep " DataFlowEngine"|grep -v grep| gawk '{ print strftime("[%Y-%m-%d %H:%M:%S]"), $0 }'|grep ACES_KOFAX_TCM_DRS|sed 's/[ ]*$//'`
предполагает, что вывод top
будет включать, по крайней мере, эти две строки:
DataFlowEngine ACES_KOFAX_TCM_DRS
, что составляет 34 символа. При быстрой проверке top
показывает мне команду, начинающуюся в столбце 64. Но top
показывает мне только строки до 80 столбцов. Если ваша среда устанавливает для $ COLUMNS
более широкое значение, top
, скорее всего, будет использовать это значение (и при быстрой проверке это происходит с Debian 7). На странице руководства top
сказано, что если вы используете параметр -w
, по умолчанию будет 512 столбцов, но ничего не говорится о ширине по умолчанию без вариант.
Когда строки укорачиваются, grep для ACES_KOFAX_TCM_DRS
дает сбой, в результате чего сценарий возвращает пустую строку. Если вы используете параметр -w
, ваш сценарий должен работать более согласованно.
В качестве альтернативы, изменение команды на
ESBLOGENTRY=`COLUMNS=128 top -b -n 1 -c|grep " DataFlowEngine"|grep -v grep| gawk '{ print strftime("[%Y-%m-%d %H:%M:%S]"), $0 }'|grep ACES_KOFAX_TCM_DRS|sed 's/[ ]*$//'`
установит среду для top
(без вмешательства в другие программы).