Почему я могу получить доступ только к 7 из 16 ГБ оперативной памяти?

Попробуйте выполнить отладку/устранение неполадок. Измените текущую команду ssh на

ssh host 'cd someDir; echo "The password is $password"'

Вы получите

The password is 
Теперь попробуйте
echo host 'cd someDir; echo "The password is $password"'
Ты получишь
host cd someDir; echo "The password is $password"

В вашей команде ssh у вас есть $passwordв двойных кавычках, и окружен одинарными кавычками вокруг этого. Ну, это превращает двойные кавычки в простые, обычные символы — не более синтаксически значимо, чем если бы вы набрали LDQи RDQ— поэтому $passwordэффективно заключен в одинарные кавычки. Итак, $passwordотправляется на удаленный хост, а не значение из $password(, т. е. фактический пароль ). Затем оболочка на удаленном хосте пытается расширить $passwordдо значения, и он ничего не получает, потому что эта переменная не была установлена ​​в этой оболочке.

Может работать команда

ssh host 'cd someDir; echo "'"$password"'" | sudo -u nobody -S command'

Давайте рассмотрим это, добавив пробелы для иллюстрации/ясности:

            … '…; echo "'    "$password"    '" | sudo …'

Это по-прежнему содержит двойные кавычки внутри одинарных кавычек. Но,после указания буквальной двойной кавычки (после echo), он выходит из одинарных кавычек , поэтому расширение/замена переменных может происходить в локальной команде. Затем у нас есть $passwordв двойных кавычках. Затем мы возвращаемся к одинарным кавычкам для второй буквальной двойной кавычки, вертикальная полоса(|)и команда sudo.

Внимание :В настоящее время у меня нет доступа к хосту, к которому я могу подключиться по ssh, поэтому я не проверял это полностью.

2
23.11.2019, 23:53
1 ответ

В конце концов... Я поменял оперативную память, о которой идет речь, на другую машину. Там тоже мертво. Кажется, это была проблема с физическим оборудованием. Каким-то образом я, должно быть, поджарил его, когда менял SSD? Странный. Спасибо за помощь!

0
27.01.2020, 22:24

Теги

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