Swap2Ram.sh всегда выдает свое сообщение об ошибке, даже когда у меня осталось достаточно памяти. Есть идеи?
#!/bin/sh
mem=$(free | awk '/Mem:/ {print $4}')
swap=$(free | awk '/Swap:/ {print $3}')
if [ $mem -lt $swap ]; then
echo "ERROR: not enough RAM to write swap back, nothing done" >&2
exit 1
fi
swapoff -a &&
swapon -a
Я на Linux 3.13.0-52-generic # 86-Ubuntu SMP x86_64 x86_64 x86_64 GNU / Linux. Убунту Гном.
Обновление $ LC_ALL=C free
total used free shared buffers cached
Mem: 3841288 3161152 680136 149232 42076 424216
-/+ buffers/cache: 2694860 1146428
Swap: 3983356 35300 3948056
Я думаю, что проблема состоит в том, что сценарий ищет Mem
и Swap
, тогда как Ваша локализация производит Speicher
и Auslagerungsdatei
. Просто добавьте LC_ALL=C
перед free
с в сценарии:
export LC_ALL=C
mem=$(free | awk '/Mem:/ {print $4}')
swap=$(free | awk '/Swap:/ {print $3}')
Или:
mem=$(LC_ALL=C free | awk '/Mem:/ {print $4}')
swap=$(LC_ALL=C free | awk '/Swap:/ {print $3}')