Шаг 1. Посмотрите свободное пространство в группе томов (VG)
$ sudo vgs
$ sudo vgdisplay #for details
Если вы видите свободное пространство в vg
выполните шаг 2:
$ sudo lvextend -L +145G /dev/centos/home
$ sudo xfs_growfs /dev/centos/home
man ifconfig
говорит:
Ifconfig используется для настройки резидентных сетевых интерфейсов ядра. Он используется во время загрузки для настройки интерфейсов по мере необходимости. После этого он обычно требуется только при отладке или настройке системы.
Если аргументы не указаны, ifconfig отображает состояние активных в данный момент интерфейсов.
Если указан единственный аргумент интерфейса, он отображает только состояние данного интерфейса;
если указан единственный аргумент -a, он отображает состояние всех интерфейсов , даже тех, которые не работают.
В противном случае он настраивает интерфейс.
man netdevice
также может пролить свет на этот вопрос. Он использует системный вызов ioctl ().
Другой метод - использовать strace
.
Он дает вам список всех системных вызовов, сделанных любой программой, которую вы ей передаете, вместе с их аргументами и возвращаемыми значениями. Если ваша программа просто сбрасывает некоторую информацию и завершает работу, вместо того, чтобы работать в течение длительного времени, может быть довольно просто просто задействовать человека для всех системных вызовов, которые вы видите, которые выглядят так, как будто они могут предоставить информацию, которую вы ищете.
Когда я запускаю
strace ifconfig
Вот некоторые из интересных вызовов:
open("/proc/net/dev", O_RDONLY) = 6
, за которыми следует куча ioctl:
ioctl(5, SIOCGIFFLAGS, {ifr_name="eth0", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_RUNNING|IFF_MULTICAST}) = 0
ioctl(5, SIOCGIFHWADDR, {ifr_name="eth0", ifr_hwaddr=12:cd:4b:bb:7f:39}) = 0
ioctl(5, SIOCGIFMETRIC, {ifr_name="eth0", ifr_metric=0}) = 0
ioctl(5, SIOCGIFMTU, {ifr_name="eth0", ifr_mtu=9001}) = 0
Спасибо за помощь, Малый. Вот мой тестовый код.
check_ifup.c
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <net/if.h>
int main(int argc, char* argv[])
{
if (argc < 2)
{
printf("Usage: ./check_ifup interface_name\n");
return 0;
}
struct ifreq ifr;
int sockfd;
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
bzero(&ifr, sizeof(ifr));
strcpy(ifr.ifr_name, argv[1]);
ioctl(sockfd, SIOCGIFFLAGS, &ifr);
if (ifr.ifr_flags & IFF_UP)
printf("%s is up\n", argv[1]);
else
printf("%s is down or unknown\n", argv[1]);
close(sockfd);
return 0
}
Ссылка: