В Linux (как) я могу отключить память в «горячем» режиме?

Чтобы установить соединение SSH, клиент должен пройти аутентификацию на сервере. Вероятно, вы используете аутентификацию на основе ключей, когда ключ хранится в защищенном паролем файле и загружается в агент SSH. Клиент SSH знает, как найти агента через переменную среды SSH_AUTH_SOCK . В задании cron или incron среда не такая, как в вашем интерактивном сеансе, она довольно минимальная, без SSH_AUTH_SOCK , поэтому клиент SSH не может подключиться к удаленному компьютеру.

Если SSH-соединение не может быть установлено, Unison даже не начинает искать файлы для синхронизации, и ничего не записывается в unison.log .

В стандартной ошибке скрипта есть сообщения об ошибках, но вы их нигде не записываете. Добавьте что-нибудь вроде exec 2> & 1 >> ~ / .unison-sync.log; дата до начала вашего скрипта.

Чтобы SSH-соединение работало, вам нужно либо настроить для задания Unison доступ к вашему агенту, либо настроить ключ без пароля. Если вы хотите пройти через своего агента, см. Невозможно подключиться к удаленному компьютеру по ssh с помощью сценария оболочки в Crontab ; но тогда он будет работать только тогда, когда вы вошли в систему. Если вы хотите, чтобы синхронизация работала все время, ключ без пароля - единственное решение. Поскольку вы используете Unison и, следовательно, SSH как root, закрытый ключ должен находиться в /root/.ssh , а не в вашей учетной записи. То же самое касается любой соответствующей опции в .ssh / config .На стороне сервера вы можете авторизовать открытый ключ только для выполнения определенной команды unison с помощью директивы command =… в .ssh / authorized_keys (см. Создание учетной записи UNIX который выполняет только одну команду для примера). С ограничением команд, если кто-то получит доступ к локальной учетной записи root, он сможет выполнить только эту конкретную команду unison… на host-2 ; Я не знаю, можно ли заставить Unison таким образом выполнить произвольный код.

4
29.09.2016, 20:28
1 ответ

Скорее всего, ваши блоки памяти не могут быть отключены, потому что они содержат неперемещаемые страницы. Проверьте «съемный» атрибут sysfs.

Если вы используете обычную систему x86 -64 (, виртуализированную или «голое железо» ), весьма вероятно, что нет съемных блоков, потому что все выделения ядра неперемещаемы. Чтобы ограничить ядро ​​​​какой-то частью оперативной памяти, передайте ему параметр «kernelcore =». После этого вы должны увидеть несколько съемных блоков памяти, и вы можете отключить их, написав «0» в атрибут «онлайн» или написав «оффлайн» в атрибут «состояние».

0
26.02.2020, 05:08

Теги

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