Сброс через ssh на неотвечающей машине

Я столкнулся со связанной с этим проблемой, когда образ Docker для CentOS 7.4.1708 начал собирать новые пакеты из CentOS 7.5.1804 и больше не мог найти обновления, ранее выпущенные для 7.4. Я решил это, изменив конфигурацию репозитория с помощьюsed:

sed -e '/mirrorlist=.*/d' \
    -e 's/#baseurl=/baseurl=/' \
    -e "s/\$releasever/7.4.1708/g" \
    -e "s/mirror.centos.org\\/centos/vault.centos.org/g" \
    -i /etc/yum.repos.d/CentOS-Base.repo

Это основано на ответе JRFerguson, но с другим базовым URL:

  1. Удалите строки mirrorlist=.
  2. Раскомментируйте строки baseurl=.
  3. Явно поместите желаемую версию выпуска в базовый URL-адрес (и имя репозитория ).

Например, эта конфигурация по умолчанию:

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

становится:

[base]
name=CentOS-7.4.1708 - Base
baseurl=http://vault.centos.org/7.4.1708/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

Однако это лишь временный обходной путь, поскольку старые пакеты удаляются с зеркал через несколько недель после выпуска новой версии. Те, что для 7.4, были удалены до того, как был опубликован новый базовый образ Docker.

2
23.05.2020, 20:16
2 ответа

Практически все хосты unix используют OpenSSH SSH-сервер для приема соединений ssh. Когда вы подключаетесь к OpenSSH sshd и запрашиваете выполнение команды, он всегда будет использовать вашу оболочку входа для выполнения команды. Если вы запустите:

ssh -T <host> "echo 'reisub' > /proc/sysrq-trigger"

тогда сервер ssh выполнит аналог этого:

$SHELL -c "echo 'reisub' > /proc/sysrq-trigger"

где $SHELL— ваша оболочка для входа в систему --/bin/bash или что-то еще.

Единственным исключением из этого правила является то, что сервер SSH может быть настроен для обработки сеансов SFTP без вызова внешней программы. Если ваш хост настроен таким образом,тогда это могло бы сработать:

  1. В вашей локальной системе создайте файл, содержащий текст «reisub».
  2. Установите соединение SFTP с удаленной системой.
  3. Перейдите в каталог /procи поместите файл в sysrq-trigger.
3
18.03.2021, 23:33

Похоже, что диск умер. если вы не можете использовать ssh, вы вряд ли сможете подключиться к sftp. вот почему существует IPMI, у вас есть доступ к контроллеру управления платой или шасси через IPMI или SNMP?

1
18.03.2021, 23:33

Теги

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