Можно использовать сервисы no-ip.org. Зарегистрируйте бесплатно адрес как my-laptop.noip.org
, затем загрузите программное обеспечение на свой ноутбук и в любое время Ваши изменения IP, программное обеспечение обновит Ваш адрес для того, чтобы указывать на Ваш новый IP-адрес.
Только необходимо сделать соединение SSH к my-laptop.noip.org
.
На самом деле у меня есть сервис, выполняющий этот путь.:D
Учитывая, что несвязанные процессы такой как snmpd
и crond
умирают, и наблюдение данного Joel Taylor это locale-gen
может использовать большую память, Вы - жертва уничтожителя OOM.
Избегать OOM уничтожает, установите превышать возможности политику отключить чрезмерные обязательства: sysctl vm.overcommit_memory=2
Даже при отключении чрезмерных обязательств было бы лучше ограничить повреждение locale-gen
путем ограничения, сколько памяти это может выделить.
(ulimit -v 100000; build-locale-archive)
Это вопрос, который я собирался разместить здесь несколько недель назад. Как и тердон , я понимал, что .bashrc
поставляется только для интерактивных оболочек Bash, поэтому не должно быть необходимости для .bashrc
проверять, работает ли он в интерактивной оболочке. Сбивает с толку, что все дистрибутивы, которые я использую (Ubuntu, RHEL и Cygwin), имели некоторый тип проверки (тестирование $ -
или $ PS1
) для обеспечения интерактивности текущей оболочки. Я не люблю грузовое культовое программирование , поэтому я начал понимать назначение этого кода в моем .bashrc
.
После изучения проблемы я обнаружил, что удаленные оболочки рассматриваются по-разному. В то время как неинтерактивные оболочки Bash обычно не выполняют команды ~/.bashrc
при запуске, особый случай делается, когда оболочка вызывается демоном удаленной оболочки :
Bash пытается определить, когда она выполняется со своим стандартным входом подключено к сетевому соединению, как при выполнении удаленной оболочкой демон, обычно
rshd
, или демон защищенной оболочкиsshd
. Если Баш определяет, что выполняется таким образом, считывает и выполняет команды из ~/.bashrc, если этот файл существует и доступен для чтения. Он не будет этого делать, если вызывается какsh
. Параметр--norc
может использоваться для запрета такого поведения, и параметр--rcfile
может использоваться для принудительного чтения другого файла, но ниrshd
, ниsshd
обычно не вызывают оболочку с этими опциями или разрешить их указание.
Вставьте следующее в начале удаленного .bashrc
. (Если .bashrc
является источником .profile
или .bash _ profile
, временно отключите его во время тестирования):
echo bashrc
fun()
{
echo functions work
}
Выполните следующие команды локально:
$ ssh remote_host 'echo $- $0'
bashrc
hBc bash
i
в $ -
указывает, что оболочка является неинтерактивной . -
в $0
указывает на то, что оболочка не является оболочкой входа . Функции оболочки, определенные в удаленном .bashrc
, также могут выполняться:
$ ssh remote_host fun
bashrc
functions work
Я заметил, что ~/.bashrc
является только источником, если команда указана в качестве аргумента для ssh
. Это имеет смысл: когда ssh
используется для запуска обычной оболочки входа, выполняется .profile
или .bash _ profile
(и .bashrc
только при явном использовании одного из этих файлов).
Основное преимущество, которое я вижу в использовании .bashrc
при выполнении (неинтерактивной) удаленной команды, заключается в возможности выполнения функций оболочки. Однако большинство команд в типичном .bashrc
являются релевантными только в интерактивной оболочке, например, псевдонимы не расширяются, если оболочка не является интерактивной.
Обычно это не является проблемой, когда rsh
или ssh
используются для запуска интерактивной оболочки входа или когда неинтерактивные оболочки используются для выполнения команд. Однако это может быть проблемой для таких программ, как rcp
, scp
и sftp
, которые используют удаленные оболочки для передачи данных.
При использовании команды scp
неявно запускается оболочка удаленного пользователя по умолчанию (например, Bash). Нет упоминания об этом на главной странице - только упоминание, которое scp
использует ssh
для передачи данных. Это приводит к тому, что , если .bashrc
содержит какие-либо команды, выводимые на стандартный вывод, передача файлов не будет выполнена , например,
Ошибка scp .
См. также этот связанный отчет об ошибке Red Hat от 15 лет назад, scp обрывается при наличии эхо-команды в/etc/bashrc (которая в конечном итоге была закрыта как WONTFIX
).
scp
и sftp
не работают SCP (защищенная копия) и SFTP (безопасный протокол передачи файлов) имеют собственные протоколы для обмена информацией о передаваемых файлах на локальном и удаленном концах. Любой непредвиденный текст с удаленного конца (ошибочно) интерпретируется как часть протокола, и передача не выполняется. В соответствии с Часто задаваемые вопросы из книги улиток
Что часто бывает, так это то, что есть утверждения в системные или пользовательские файлы запуска оболочки на сервере (
.bashrc
,.profile
,/etc/csh.cshrc
,.login
и т.д.), которые выводят текстовые сообщения при входе в систему, предназначался для чтения людьми (какфортуна
,эхо «Привет там!»
и т. д.).Такой код должен выводить только при наличии интерактивных имен входа
tty
, подключенный к стандартному входу. Если он не делает этот тест, он будет вставить эти текстовые сообщения там, где им не место: в данном случае загрязняющие поток протокола междуscp2
/sftp
иsftp-server
.Причина, по которой файлы запуска оболочки являются релевантными, заключается в том, что
sshd
использует оболочку пользователя при запуске любых программ от имени пользователя (используя, например ,/bin/sh -c «command»). Это традиция Unix, и имеет преимущества:
- Обычная настройка пользователя (псевдонимы команд, переменные среды, umask, и т.д.) действуют при выполнении удаленных команд.
- Обычная практика установки оболочки учетной записи на/bin/false для отключения это не позволит владельцу выполнять какие-либо команды,должна ли аутентификация все-таки случайно преуспеть почему-то.
Для тех, кто интересуется подробностями работы SCP, я нашел интересную информацию в разделе Как работает протокол SCP , который включает в себя сведения о работе scp с наборными профилями оболочки на удаленной стороне? :
Например, это может произойти, если добавить это в профиль оболочки на удаленная система:
эхо «»
Почему она просто висит? Это происходит из способа
scp
в режиме источник ожидает подтверждения первого сообщения протокола. Если он не двоичный 0, он ожидает, что это уведомление об удаленной проблеме и ожидает больше символов для формирования сообщения об ошибке до поступления новой строки. С тех пор Вы не напечатали еще одну новую строку после первой, ваш локальныйscp
просто остается в петле, заблокированной начтение (2)
. А пока после снаряда профиль обработан на удаленной стороне, запущенscp
в режиме раковины, который также блокируетчтение (2)
, ожидая двоичного нуля, обозначающего начало передачи данных.
Большинство операторов в типичном .bashrc
полезны только для интерактивной оболочки - не при выполнении удаленных команд с rsh
или ssh
. В большинстве таких ситуаций установка переменных оболочки, псевдонимов и определяющих функций не требуется - а печать любого текста в стандартном режиме является активно вредной при передаче файлов с помощью таких программ, как scp
или sftp
. Выход после проверки неинтерактивности текущей оболочки является наиболее безопасным поведением для .bashrc
.
Проблема заключается в усечении файла языковых стандартов. Проверьте: http://bleachbit.sourceforge.net/forum/linux-fedora-core-15-usrliblocalelocale-archive-still-large-after-removing-all-one-locale
Поэтому, если вы просто скопируете файл языкового стандарта поверх файла шаблона и запустите build-locale-archive, все работает:
cp -f/usr/lib/locale/locale-archive/usr/lib/locale/locale-archive.tmpl
build-locale-archive.