Как мне узнать, почему я получаю в любое время одно и то же сообщение об ошибке из оригинального сценария Ubuntu?
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
1 ответ
Решение
Я думаю, проблема в том, что скрипт ищет 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}')