Расширьте свой физический том сначала и затем логический том:
pvresize /dev/sdb4
lvextend /dev/vg_mine/lv_root
Обратите внимание, что я кончил -L+16G
— это использует все свободное пространство.
Ответ на ваш вопрос, вероятно, "Нет, не существует"
Причина этого в том, что ICMP является протоколом низкого уровня, и для получения ICMP-трафика приложению необходим привилегированный доступ к вашему сетевому интерфейсу. Свидетельством этого на большинстве систем может служить тот факт, что исполняемые файлы, которые генерируют ICMP, имеют установленный корень. Обратите внимание на липкий бит:
$ ls -l /sbin/ping /usr/sbin/traceroute
-r-sr-xr-x 1 root wheel 28088 Aug 12 12:19 /sbin/ping
-r-sr-xr-x 1 root wheel 28608 Aug 12 12:20 /usr/sbin/traceroute
(Это на FreeBSD. Ваши результаты на других операционных системах могут отличаться.)
Для того, чтобы приложение генерировало сырой сетевой трафик, оно должно запускаться как root. Так как /sbin/ping
уже запущено от имени root, лучше всего использовать его для генерации пингов.
Если вы делаете это для большого количества хостов, вы можете посмотреть на fping. Другой вариант - tcping, который может генерировать TCP пакеты, дающие результаты, похожие на ICMP ping. Требованием будет наличие открытого порта в целевой системе для получения пакета. Вы можете использовать это или реплицировать его подход, основанный на источнике. Оба они могут быть уже доступны в виде пакета для вашей операционной системы.
Для более масштабного решения по мониторингу Nagios и Zabbix являются популярными бесплатными опциями, но есть и множество других.
Может быть, слишком раздутые для того, что вы ищете, но большинство полнофункциональных решений для мониторинга, таких как Nagios, icinga или check_mk, обеспечивают мониторинг icmp и часто предоставляют API, которые можно запросить.
Хотя ICMP-эхо удобен тем, что это положительный ответ, вы можете выполнять тесты в режиме реального времени с отрицательными ответами, такими как недостижимый порт и недостижимый протокол, при условии, что ваш удаленный компьютер предоставляет их. Попробуйте:
connect()
подключение к неиспользуемому порту TCP send()
подключение к неиспользуемому порту UDP Вы должны иметь возможность выполнить setsockopt(fd, IP_RECVERR,...)
, чтобы вернуть ошибки без ошибок, и специальную опцию для получения самих ошибок. (В Linux см. справочную страницу ip(7)
.)
В качестве обновленного ответа на этот старый вопрос: с 2019 года стало возможным создавать приложение уровня пользователя -на платформе на базе Linux -, которое может выполнять запросы ping
без необходимости привилегий root.
ls -l /bin/ping
-rwxr-xr-x 1 root root 55720 Mar 8 2021 /bin/ping
ping -c1 google.co.uk
PING google.co.uk(lhr48s27-in-x03.1e100.net (2a00:1450:4009:815::2003)) 56 data bytes
64 bytes from lhr35s11-in-x03.1e100.net (2a00:1450:4009:815::2003): icmp_seq=1 ttl=119 time=13.0 ms
--- google.co.uk ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 13.047/13.047/13.047/0.000 ms
Как работает ping в Fedora без setuid и возможностей?
Параметр net.ipv4.ping_group_range
sysctl ядра Linux определяет числовой диапазон групп пользователей, которым разрешено отправлять и получать ping
пакеты без дополнительных разрешений или возможностей.