Как стать автором
Обновить

Комментарии 20

НЛО прилетело и опубликовало эту надпись здесь

Кстати, есть хороший сайт, рассказывающий про кэш и куда могла деться оперативная память https://www.linuxatemyram.com/

lshw покажет все банки памяти производителя и пр.

  *-memory
       описание: Системная память
       физический ID: e
       слот: Системная плата или материнская плата
       размер: 16GiB
     *-bank:0
          описание: SO-DIMM DDR4 Синхронная 2667 MHz (0,4 ns)
          продукт: M471A-CTD
          производитель: Samsung
          физический ID: 0
          серийный №: 00000001
          слот: ChannelA-DIMM0
          размер: 8GiB
          разрядность: 64 bits
          частота: 2667MHz (0.4ns)
     *-bank:1
          описание: SO-DIMM DDR4 Синхронная 2667 MHz (0,4 ns)
          продукт: M471A-CTD
          производитель: Samsung
          физический ID: 1
          серийный №: 00000001
          слот: ChannelB-DIMM0
          размер: 8GiB
          разрядность: 64 bits
          частота: 2667MHz (0.4ns)

советую погуглить lshw crash system. Сам однажды этими граблями получил.

  local totalram=$(cat /proc/meminfo | grep -i 'memtotal' | grep -o '[[:digit:]]*')

Три процесса вместо одного

local totalram=$(grep -Po 'MemTotal: \K[[:digit:]]' /proc/meminfo)

Ваш вариант не работает. Но я смог исправить

grep -Po 'MemTotal: *\K[0-9]+' /proc/meminfo

Точно. На SO однажды вычитал фразу, поразившую глубиной, запомнил:

Advices from catgreppers should generally be avoided

В случае /proc они не обязательно правы. Может, сейчас исправили, но в 2000х я неоднократно натыкался, что, например, `cat /proc/что-то | less` работает корректно, а `less /proc/что-то` - нет. Поэтому привычка через cat|grep надёжнее. Если сейчас везде исправили, то хотелось бы увидеть ссылку на гарантию исправления (нагуглить я не смог).

В случае /proc они не обязательно правы. Может, сейчас исправили, но в 2000х я неоднократно натыкался, что, например, `cat /proc/что-то | less` работает корректно, а `less /proc/что-то` - нет. Поэтому привычка через cat|grep надёжнее. Если сейчас везде исправили, то хотелось бы увидеть ссылку на гарантию исправления (нагуглить я не смог).

$ cat /proc/meminfo | head -n 3

head (как и grep) принимает имя файла в качестве аргумента, по-этому:

head -n 3 /proc/meminfo

Для RHEL, Fedora и CentOS можно использовать yum

Смотрю на год выхода статьи...да ладно...

В Fedore DNF стандартно заменил YUM 7 лет назад (с 2015 года), в RHEL, начиная с RHEL/CentOS 8 (с 2019 года). Я понимаю, что многие до сих пор сидят на CentOS7, но для таких статья "как узнать объём RAM" будет, мягко говоря, бесполезна, они сами могут ещё пару-тройку способов автору подкинуть.

Как-то вы слишком категоричны. Что же, думаете на CentOS7 «сидят» только бородатые дядьки, которые его настраивали, когда мы с вами ещё под стол пешком ходили? Не далее двух месяцев назад пришлось разбираться с настройкой окружения на боевом сервере с Linux (как выяснилось, это был Oracle Linux 7, но по сути это тот же RHEL7). До этого дел с серверными Linux'ами не имел. При этом его предоставили по принципу — вот вам машина с (каким-то) Linux'ом, а дальше вы сами. Что же, по вашей логике я тоже должен уметь «пару-тройку способов автору» подкидывать?

Программное обеспечение в RHEL основано на программном обеспечении Fedora. В версиях Fedora, на которых основан RHEL 8, yum был заменен утилитой dnf. По этой причине ожидалось, что с выпуском RHEL 8 команда yum будет заменена командой dnf. Red Hat решила иначе. В RHEL 8 была представлена новая версия yum, основанная на команде dnf. Red Hat решила переименовать его в yum.

Если упомянуты диспетчеры задач для GUI, почему не упомянут мега популярный аналог для TUI - htop?

Так написали же про top, а если перечислять аналоги, то и atop надо вспомнить, и nmon, и вообще целая статья была про всевозможные мониторилки…

Ждём статью. "Как сменить директорию в Linux"

Ага, и "Как выйти из vim: 5 простых способов от профессионалов"

Как видите, объём физической памяти указан в байтах.

man free говорит иное:

   -k, --kibi
          Display the amount of memory in kibibytes.  This is the default.

Уточнение: Команда free без параметров возвращает результат не в байтах а в килобайтах.

возможно будет полезно для наглядного сравнения /proc/meminfo и free

$ eval $(free -kw | awk '/Mem/{print "mtotal="$2"\nmused="$3"\nmfree="$4"\nmshared="$5"\nmbuffers="$6"\nmcache="$7"\nmavailable="$8}/Swap/{print "stotal="$2"\nsused="$3"\nsfree="$4}');eval $(awk -F'(: +)| ' '!/\(/{print $1"="$2}' /proc/meminfo);clear; echo -e ";;;;;\nMem;total;$mtotal;│;$MemTotal;MemTotal\nMem;used;$mused;│;$[MemTotal-MemFree-Buffers-Cached-KReclaimable];MemTotal-MemFree-Buffers-Cached-KReclaimable\nMem;free;$mfree;│;$MemFree;MemFree\nMem;shared;$mshared;│;$Shmem;Shmem\nMem;buffers;$mbuffers;│;$Buffers;Buffers\nMem;cache;$mcache;│;$[Cached+KReclaimable];Cached+KReclaimable\nMem;available;$mavailable;│;$MemAvailable;MemAvailable\nSwap;total;$stotal;│;$SwapTotal;SwapTotal\nSwap;used;$sused;│;$[SwapTotal-SwapFree];SwapTotal-SwapFree\nSwap;free;$sfree;│;$SwapFree;SwapFree\n\n" | column -t -s ";" --table-columns " ,free -kw¹,KiB¹, ,KiB²,/proc/meminfo²" --table-right "free -kw¹,KiB¹" --table-truncate "/proc/meminfo²"
      free -kw¹      KiB¹     KiB²      /proc/meminfo²

Mem       total  28663908  |  28663908  MemTotal
Mem        used   3321176  |  3321176   MemTotal-MemFree-Buffers-Cached-KReclaimable
Mem        free  22884520  |  22884520  MemFree
Mem      shared    463932  |  463932    Shmem
Mem     buffers    172408  |  172408    Buffers
Mem       cache   2285804  |  2285804   Cached+KReclaimable
Mem   available  23946576  |  23946576  MemAvailable
Swap      total         0  |  0         SwapTotal
Swap       used         0  |  0         SwapTotal-SwapFree
Swap       free         0  |  0         SwapFree
Зарегистрируйтесь на Хабре, чтобы оставить комментарий