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