Ах я нашел ответ:
sudo pacman -S manjaro-keyring
Обновление ключевого кольца сначала решит проблему выше.
-121--62577-Ошибка: 3) ОШИБКА cinder.brick.local_dev.lvm Не удается найти тома Cinder группы томов
4) ОШИБКА cinder.backup.manager Ошибка при инициализации драйвера: LVMISCSIDriver
5) ОШИБКА cinder.backup.manager Неверный или неожиданный ответ от API внутреннего тома хранилища: тома Cinder группы томов не существует
Вы проверяете файл/etc/cinder/cinder.confg, и смотрите vloume-group = (любое имя, которое вы создали) то же имя, которое вы создадите в $ vg create (любое имя, которое вы создали) это имя только то, что оно будет работать.
-121--196254-Это похоже на то, что вы ищете. Проблема, как я вижу, что всегда будет по крайней мере 1 пользователь, который вошел в систему, т.е. тот, который обращается к меню, поэтому вы ищете, когда число пользователей 1.
$ who | awk '{print $1}' | sort -u | wc -l
1
При этом берется результат , который
вырезает только первый столбец, т.е. имена пользователей, а затем сортирует его однозначно, а затем подсчитывает.
Но ИМО, это немного сложнее, чем это. Просмотр ситуации таким образом игнорирует, например, если этот пользователь зарегистрировался в сеансах SSH. Таким образом, вы, вероятно, хотите проверить, если выше вывод от кто
указывает, что это только : 0
устройств или если есть какие-либо pts/#
типов строк.
# represents the login for the user's desktop on display :0
saml :0 2014-12-01 01:56 (:0)
# represents user's terminals or SSH connections
saml pts/0 2014-12-01 01:57 (:0)
ПРИМЕЧАНИЕ: Обратите внимание на то, как строка pts/0
показывает, с каким дисплеем она связана, «: 0».
Поэтому что-то подобное кажется более подходящим:
num_pts=$(who | grep 'pts/' | wc -l)
num_usr=$(who | awk '{print $1}' | sort -u | wc -l)
if [ $num_pts -eq 0 ] && [ $num_usr -eq 1 ]; then echo "OK to logout";fi
Вот смоделированный прогон, в котором у меня есть 2 учетные записи:
$ who
saml :0 2014-12-01 01:56 (:0)
saml pts/0 2014-12-01 01:57 (:0)
saml pts/1 2014-12-01 02:13 (:0)
saml pts/2 2014-12-03 04:22 (:0)
saml pts/3 2014-12-05 08:14 (:0)
samtest pts/4 2014-12-05 08:14 (localhost)
Выполнение команд вручную приводит к следующему:
$ echo $num_usr
2
$ echo $num_pts
5
$ if [ $num_pts -eq 0 ] && [ $num_usr -eq 1 ]; then echo "OK to logout";fi
$
Если я вручную задаю переменные 2, однако, чтобы смоделировать, что я вошел в систему «: 0» и не иметь открытых терминалов:
$ num_usr=1
$ num_pts=0
$ if [ $num_pts -eq 0 ] && [ $num_usr -eq 1 ]; then echo "OK to logout";fi
OK to logout
Это может быть сокращено и просто показать вам подход.
Проблема в том, что
if [ $usep -ge $ALERT ]; then
...
fi
$usep
содержит несколько строк из цифр. Чтобы проциклировать их все, вместо этой части используйте нечто подобное:
for $space in $usep;
do
if [ $space -ge $ALERT ]; then
echo "Running out of space..."
fi
done
Значение, записанное в переменной $storage
, состоит из нескольких строк. В результате $output
также будет содержать несколько строк, так же как и $usep
.
Вы можете извлечь и сравнить все значения, сохранённые в $usep
, по очереди, используя другой для
цикла, как упоминалось в ответе на этот вопрос . Или вы можете использовать , в то время как
утверждение следующим образом:
echo $storage | while read output
do
...
...
if [ $usep -ge $ALERT ]; then
echo "Running out of space \"$partition ($usep%)\" on $(hostname) as on $(date)"
fi
done