мелкие полезные команды

Инструменты для управления и диагностики системы

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21159
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: мелкие полезные команды

Непрочитанное сообщение Olej » 27 май 2022, 23:38

Команда pgrep

Код: Выделить всё

olej@orangepione:~$ pgrep -l Xorg
17773 Xorg

Код: Выделить всё

olej@orangepione:~$ pgrep -a Xorg
17773 /usr/lib/xorg/Xorg :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
olej@orangepione:~$ 
Это быстрый способ.
Конечно, эту информацию можно выудить ps ... но зачем так мудрить?
Подробнее, как всегда, здесь:

Код: Выделить всё

olej@R420:~$ pgrep --help

Использование:
 pgrep [параметры] <шаблон>

Параметры:
 -d, --delimiter <строка>  указать разделитель вывода
 -l, --list-name           выводить PID и имена процессов
 -a, --list-full           выводить PID и полную командную строку
 -v, --inverse             negates the matching
 -w, --lightweight         выводить все TID
 -c, --count               вывод количества соответствующих шаблону процессов
 -f, --full                use full process name to match
 -g, --pgroup <PGID,...>   match listed process group IDs
 -G, --group <GID,...>     match real group IDs
 -i, --ignore-case         match case insensitively
 -n, --newest              select most recently started
 -o, --oldest              select least recently started
 -P, --parent <PPID,...>   match only child processes of the given parent
 -s, --session <SID,...>   match session IDs
 -t, --terminal <tty,...>  match by controlling terminal
 -u, --euid <ID,...>       match by effective IDs
 -U, --uid <ID,...>        match by real IDs
 -x, --exact               match exactly with the command name
 -F, --pidfile <файл>      читать PIDы из файла
 -L, --logpidfile          fail if PID file is not locked
 -r, --runstates <state>   match runstates [D,S,Z,...]
 --ns <PID>                match the processes that belong to the same
                           namespace as <pid>
 --nslist <ns,...>         list which namespaces will be considered for
                           the --ns option.
                           Available namespaces: ipc, mnt, net, pid, user, uts

 -h, --help     вывести эту справку и выйти
 -V, --version  вывести информацию и выйти

Подробнее смотрите pgrep(1).

Аватара пользователя
Olej
Писатель
Сообщения: 21159
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

мелкие полезные команды

Непрочитанное сообщение Olej » 21 мар 2023, 12:50

Понадобилось усечь лог-файл...
Попала на глаза команда - для построчного усечения не годится, но для файлов данных (побайтно) вполне:

Код: Выделить всё

olej@R420:~$ truncate --help
Использование: truncate ПАРАМЕТР… ФАЙЛ…
Сокращает или увеличивает размер каждого ФАЙЛА до заданного размера

Если ФАЙЛ не существует, то он будет создан.

Если ФАЙЛ больше заданного размера, все лишние данные будут потеряны.
Если ФАЙЛ короче, то он расширяется, и разреженная расширенная часть (пустота)
читается как нулевые байты.

Аргументы, обязательные для длинных параметров, обязательны и для коротких.
  -c, --no-create        не создавать файлы
  -o, --io-blocks        считать РАЗМЕР как количество блоков ввода/вывода,
                         а не байтов
  -r, --reference=RФАЙЛ  базовый размер RФАЙЛА
  -s, --size=РАЗМЕР      установить или подогнать размер файла
                         под РАЗМЕР байт
      --help     показать эту справку и выйти
      --version  показать информацию о версии и выйти

РАЗМЕР задаётся целым числом и необязательной единицей измерения
(пример: 10K это 10*1024). Единицы измерения:
K, M, G, T, P, E, Z, Y (степень 1024) или KB, MB, … (степень 1000).
Также можно использовать двоичные префиксы: KiB=K, MiB=M и так далее.

Перед РАЗМЕРОМ может быть один из следующих символов:
«+» — расширить на, «-» — сократить на, «<» — не более,
«>» — не менее, «/» — округлить с сторону уменьшения,
«%» — округлить в сторону увеличения.

Страница справки по GNU coreutils: <https://www.gnu.org/software/coreutils/>
Об ошибках в переводе сообщений сообщайте по адресу <https://translationproject.org/team/ru.html>
Полная документация: <https://www.gnu.org/software/coreutils/truncate>
или доступная локально: info '(coreutils) truncate invocation'
Команда усечения файла (логов) до 0 (очистки):

Код: Выделить всё

root@277938:~# ls -l /var/log/daemon.log 
-rw-r----- 1 root adm 38114 мар 30 18:39 /var/log/daemon.log

Код: Выделить всё

root@277938:~# > /var/log/daemon.log 

Код: Выделить всё

root@277938:~# ls -l /var/log/daemon.log 
-rw-r----- 1 root adm 0 мар 30 18:43 /var/log/daemon.log

Аватара пользователя
Olej
Писатель
Сообщения: 21159
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

мелкие полезные команды

Непрочитанное сообщение Olej » 31 мар 2023, 11:44

Сравнение двух каталогов (деревьев на всю глубину), пофайлово - на идентичность.
Очень полезно при групповом (рекурсивном) копировании.

Например так:

Код: Выделить всё

olej@R420:~/.config/Emercoin$ time cp -R $HOME/sdc3/emercoin2/ $HOME/sdc3/emercoin.0.8/

real    0m9,353s
user    0m0,025s
sys     0m2,452s

Код: Выделить всё

olej@R420:~/.config/Emercoin$ du -hs $HOME/sdc3/emercoin2/ $HOME/sdc3/emercoin.0.8/
1,1G    /home/olej/sdc3/emercoin2/
1,1G    /home/olej/sdc3/emercoin.0.8/

Код: Выделить всё

olej@R420:~/.config/Emercoin$ time diff --brief --recursive $HOME/sdc3/emercoin2/ $HOME/sdc3/emercoin.0.8/

real    0m1,015s
user    0m0,176s
sys     0m0,838s

Аватара пользователя
Olej
Писатель
Сообщения: 21159
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

мелкие полезные команды

Непрочитанное сообщение Olej » 10 ноя 2023, 13:22

Хороший плакатик :lol: :


Ответить

Вернуться в «Системные утилиты»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость