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 上。Ubuntu Gnome。
更新
$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
。只需在脚本中的 sLC_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}')