Как мне узнать, почему я получаю в любое время одно и то же сообщение об ошибке из оригинального сценария 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
0
задан 19 May 2015 в 15:25

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}')
0
ответ дан 19 May 2015 в 15:25

Другие вопросы по тегам:

Похожие вопросы: