我如何找出为什么每次从原始 Ubuntu 脚本中都会收到相同的错误消息?

我如何找出为什么每次从原始 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 上。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

我认为问题在于脚本寻找MemSwap,而您的本地化产生SpeicherAuslagerungsdatei。只需在脚本中的 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}')

相关内容