ps -o args= -p "$pid"
Сообщит вам список аргументов, переданный последней команде, которую выполнял процесс (или, если он не выполнял никакой, той, которую выполнял его родитель ...), при условии, что процесс не переопределил свой список аргументов впоследствии.
ps
покажет, что список arg объединен с пробелами до предела, который вы можете увеличить с помощью некоторых реализаций ps
, добавив пару -w
параметры). В Linux вы можете увидеть список аргументов, разделенных байтами NUL, в / proc / $ pid / cmdline
.
lsof +fg -ap "$pid" -d 0-2
Сообщит вам, на что указывают файловые дескрипторы stdin, stdout и stderr процесса и в каком режиме они были открыты (например, W, AP
для записи только с добавлением, как если бы > >
перенаправление использовалось в оболочке POSIX).
Обратные кавычки и $( … )
интерполируются внутри двойных кавычек. Используйте одинарные кавычки, и это сработает.
sudo ssh p210243@192.75.110.40 'cd /var/opt/OV/log/nnm/; files=`ls -t | grep -m 3 trap.csv`; echo $files'
Или вообще избегайте подоболочки с помощью xargs:
sudo ssh p210243@192.75.110.40 'ls -td /var/opt/OV/log/nnm/* | grep -m 3 trap.csv | xargs grep '$ipAddress
В оболочке zsh
три файла с самой последней отметкой времени модификации, с именами файлов, соответствующими *trap.cvs
в каталоге /var/opt/OV/log/nnm
, будут иметь шаблон
/var/opt/OV/log/nnm/*trap.cvs(.om[1,3])
, где (...)
изменяет поведение предыдущего шаблона. .
выбирает только обычные файлы, (, а не имена каталогов и т. д. )и om
упорядочивают, уменьшая временную метку модификации. [1,3]
возвращает только первые три совпадения (или меньше, если совпадений меньше ).
Итак, если на удаленной машине установлена оболочка zsh
,вы могли бы сделать
ssh p210243@192.75.110.40 zsh -c 'grep -wF "$1" /var/opt/OV/log/nnm/*trap.cvs(.om[1,3])' zsh "$ipAddress"
Это запустит grep
для поиска IP-адреса, хранящегося в $ipAddress
в трех последних измененных файлах в удаленной системе.
Флаги, используемые с grep
, заставляют использовать сравнение строк, а не сопоставление регулярных выражений (, то есть -F
), и требует, чтобы совпадающая строка была полным словом (, то есть -w
; так что 123.123.123.123
не соответствует23.123.123.1
).