Каковы последствия удаления файлов /etc/rc.d и /etc/rc0.d?

awk здесь будет лучшим выбором:

DB_NAME=test; export DB_NAME
file=$(awk -F: '$1 == ENVIRON["DB_NAME"] {print $2; exit}' < /etc/oratab)

printf '%s\n' "$file"

На Solaris обязательно выполните:

PATH=$(getconf PATH):$PATH

(и используйте #! /usr/xpg4/bin/sh -, если на Solaris 10 и старше ), чтобы иметь стандартные утилиты. Или используйте command -p awk. Иначе можно получить дедовский awkиз 70-х годов.

0
23.04.2020, 06:04
1 ответ

В RHEL 6 /etc/rc.d/init.d/— это фактическое расположение сценариев запуска и завершения работы в стиле SysVinit -. /etc/init.dявляется символической ссылкой на него.

Каталоги /etc/rc.d/rc[0-6].dдолжны содержать только символические ссылки, указывающие на скрипты в /etc/rc.d/init.d/. Существует также набор символических ссылок в /etc/rc[0-6].d, указывающих на соответствующие каталоги в /etc/rc.d/.

Лучше всего восстановить эти каталоги из резервной копии, которая изначально была взята с того же сервера, так как это гарантирует, что у вас будет точно такая же конфигурация, как и раньше.

Но если у вас есть несколько серверов, сконфигурированных одинаково (= установлены одни и те же RPM, запущены одни и те же службы ), то вы можете получить довольно хорошие (, но не обязательно идеальные )результаты, скопировав каталоги.

Я определенно рекомендую сначала скопировать /etc/rc.d/rc, /etc/rc.d/rc.sysinitс другого сервера, так как они, скорее всего, не изменятся между серверами. Без этих сценариев сервер, безусловно, перейдет в однопользовательский режим очень рано в процессе загрузки, что может сделать дальнейшее восстановление более неудобным.

/etc/rc.d/rc.localмогут изменяться или не изменяться вашими локальными администраторами; по умолчанию он ничего не делает, но лучше, чтобы он существовал. Так что скопируй и егоно если он имеет содержимое, отличное от -по умолчанию, убедитесь, что содержимое применимо.

Затем вы можете скопировать содержимое /etc/rc.d/init.dс сервера, настроенного так же, как поврежденная система, а затем использовать эти команды для восстановления символических ссылок по умолчанию для сценариев:

cd /etc/rc.d/init.d
for i in *; do chkconfig --add $i; done

Это восстановит заводскую настройку по умолчанию с включенной/отключенной конфигурацией различных служб; после этого вы должны запустить chkconfig --listкак на поврежденном сервере, так и на другом идентично -сконфигурированном сервере, и использовать команды chkconfig <service name> on/ chkconfig <service name> offдля настройки включенного/отключенного состояния различных служб, чтобы они соответствовали состоянию других идентично -сконфигурированный сервер на самом деле имеет (или что-то другое, имеющее смысл в отношении цели поврежденного сервера, если другой сервер не совсем идентичен ).

Затем вы можете использовать rpm -Va | grep /etc/rc.d/init.d, чтобы убедиться, что все сценарии для программного обеспечения, установленного из пакетов RPM, присутствуют. В нем будут перечислены все сценарии, которые отсутствуют или изменены по сравнению с их состоянием по умолчанию, как доставленные в RPM. Если некоторые скрипты отсутствуют, yum reinstall <package name>может быть простым способом их исправить.

Если у вас есть стороннее -программное обеспечение, которое не установлено из RPM-пакетов, вам необходимо ознакомиться с их инструкциями по установке и проверить, есть ли у них сценарии запуска -, которые нужно заменить вручную.

1
19.03.2021, 02:26

Теги

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