Сколько служб прослушивают целевую систему на всех интерфейсах? (Не на локальном хосте и только для IPv4)

Метод, описанный в Удаление файлов старше X дней+ . будет работать на вас:

find /path/to/directory/ -mtime +7 -delete

но он упускает из виду пару частей вашего вопроса.

  1. ... из разных мест...

    Вы можете указать несколько начальных точек для одной команды find. Делать

    find /home/user1/Out/vendor /home/user2/Out/vendor /home/user3/Out/vendor /home/user4/Out/vendor … /home/usern/Out/vendor -mtime +7 -delete
    или
    find /home/user1/Out/vendor /home/user2/Out/vendor /home/user3/Out/vendor \
         /home/user4/Out/vendor … /home/usern/Out/vendor -mtime +7 -delete
    для удобства чтения.

    Но вам не нужно явно перечислять все подобные каталоги. Если выбуквальноимеете дело с user1, user2,..., usern, (гдеn— число ), вы можете сделать

    find /home/user{1,2,3,4,…,n}/Out/vendor -mtime +7 -delete
    или даже
    find /home/user{1..n}/Out/vendor -mtime +7 -delete
    (с использованием буквально двух точек (.), также известных как точка или точка )в bash.

    Но я предполагаю, что вы, вероятно, не имеете дело с user1, user2,..., usern; у ваших пользователей, вероятно, имена. Но применяется тот же принцип; ты можешь сделать

    find /home/{user1,user2,user3,user4,…,usern}/Out/vendor -mtime +7 -delete
    Например,
    find /home/{alice,bob,cathy,david,…,nathan}/Out/vendor -mtime +7 -delete
    или даже
    find ~{alice,bob,cathy,david,…,nathan}/Out/vendor -mtime +7 -delete
  2. … как этого добиться, не удаляя папки?

    Просто добавьте -type fк команде:

    find /home/{user1,user2,user3,user4,…,usern}/Out/vendor -type f -mtime +7 -delete

4
05.12.2020, 08:53
4 ответа
netstat -tunleep4 | grep -v "127\.0\.0"
2
18.03.2021, 22:45
netstat -tunleep4 | grep -v "127.0.0" | awk '{print $6}' | grep LISTEN | wc -l
$6 might be different among OS

Обновление из комментариев

netstat -tunleep4 | grep -v "127.0.0" | awk '{print $6}' | grep -c LISTEN
1
18.03.2021, 22:45

Из man netstat:

This program is mostly obsolete. Replacement for netstat is ss.

На данный момент, я думаю, это будет лучший вариант:

ss -l -4 | grep -v "127\.0\.0" | grep "LISTEN" | wc -l

Где:

  • -l:показать только службы прослушивания
  • -4:показывать только ipv4
  • -grep -v "127.0.0":исключить все результаты локального хоста
  • -grep "LISTEN":улучшена фильтрация только прослушивающих сервисов
  • wc -l:результаты подсчета
11
18.03.2021, 22:45
netstat -ln4 | grep LISTEN | grep -v 127 | wc -l

Описание:

netstat
-l, --listening          display listening server sockets
-n, --numeric            don't resolve names

-4
   --protocol=family, -A
       Specifies  the  address  families  (perhaps  better described as low level protocols) for which connections are to be
       shown.  family is a comma (',') separated list of address family keywords like inet, inet6, unix, ipx, ax25,  netrom,
       econet,  ddp,  and bluetooth.  This has the same effect as using the --inet|-4, --inet6|-6, --unix|-x, --ipx, --ax25,
       --netrom, --ddp, and --bluetooth options.

       The address family inet (Iv4) includes raw, udp, udplite and tcp protocol sockets.

       The address family bluetooth (Iv4) includes l2cap and rfcomm protocol sockets.

grep LISTEN -просто строки со словом LISTEN

grep -v 127 -просто строки без127

wc -l -количество строк результатов

Наглядное объяснение здесь-https://explainshell.com/explain?cmd=netstat+-ln4+%7C+grep+LISTEN+%7C+grep+-v+127+%7C+wc+-l

1
18.03.2021, 22:45

Теги

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