Ситуация
Ты – админ узла, куда ночью CI выкатил новый сервис metka (агент складских меток). С утра терминал ведет себя странно: ls и grep отвечают command not found, а echo и cd работают как обычно. После быстрой правки вручную проблема может исчезнуть в одном shell и остаться при запуске команды без интерактивного терминала.
Что известно:
- тикет от старшего админа:
/root/ticket-311.txt; - лог ночной выкатки:
/var/log/metka-deploy.log; - агент сервиса:
/opt/metka/bin/metka-agent– он боевой: файл нельзя менять, переносить или подменять; - исправление должно пережить новую сессию и автоматический запуск команды без терминала.
Пока PATH сломан, команды доступны по полному пути: /bin/ls, /usr/bin/grep, /usr/bin/nano, /usr/bin/cat.
Что проверим
3 пункта · по состоянию системы, а не по командам
Найдите источник поломки
Разберитесь, почему встроенные команды shell работают, а внешние программы больше не находятся. По журналу и следам выкатки найдите изменение, которое это вызвало, и уберите его.
Верните команды обычному терминалу
Исправление должно храниться в конфигурации, а не только в текущем процессе. Откройте новый интерактивный shell и убедитесь, что он находит системные команды и metka-agent по имени.
Проверьте запуск без терминала
Чистый login-shell без унаследованного окружения должен видеть те же системные команды и оригинальный metka-agent. Исправление одного режима не должно маскировать поломку другого.
