Как добавить текст в конец результата команды

Хотел бы я ответить чем-нибудь поумнее, но я нашел единственный способ подсчитать inotify(7)часы, установленные пользователем,:

find /proc/*/fd -user "$USER" -lname anon_inode:inotify \
   -printf '%hinfo/%f\n' 2>/dev/null |
   xargs cat | grep -c '^inotify'

Измените "$USER"на фактического пользователя, о котором вы хотите получить информацию; "`id -u`"для текущего пользователя. Обратите внимание, что max_user_watches— это ограничение на -пользователя, а не на процесс или на экземпляр inotify/файловый дескриптор.

Сначала будут findоткрыты все файловые дескрипторы, созданные inotify_init*(2), а затем просмотрен соответствующий /proc/PID/fdinfo/FDфайл для получения информации об дескрипторах наблюдения, добавленных с помощью inotify_add_watch(2)к каждому из них (на справочной страницеproc(5)под /proc/[pid]/fdinfo/для описания конкретных записей inotify -). Опция -cдля grepпозволит напечатать количество всех строк, соответствующих шаблону.

Примечание:счетчик для inotify_watchesхранится так же, как и другие счетчики для -пользователей в struct ucounts, на которые ссылается структура пространства имен пользователей --, см.include/linux/user_namespace.h; но я не смог найти какой-либо интерфейс, открывающий доступ к этим счетчикам.

2
22.06.2020, 17:40
1 ответ

Подключить кsed:

ssh target_server "/home/directory/somescript.sh" | tail -1 | sed 's/$/ - target server/'

Синтаксис: s/regexp/replacement/flags.

  • sвызывает команду замены.
  • /— разделитель. Вы можете выбрать другой символ для разделителя.
  • $находится в слоте регулярного выражения. $соответствует концу строки.
  • - target server— это текст, который заменяет то, что соответствует слоту регулярного выражения.

Если бы текст замены содержал /(, например, - target 01/10), вы либо экранировали бы его, либо выбрали другой разделитель:

sed 's/$/ - target 01\/10/'
sed 's|$| - target 01/10|'
4
18.03.2021, 23:25

Теги

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