Bash -перенаправление в файл (ошибка )?

Не видя вашей системы, очень сложно точно сказать, в чем проблема. Комментарии и предыдущие ответы — хорошее начало.

Тем не менее, я бы вернулся к вики debian, где описаны предварительные требования для монтирования/только для чтения.

Ссылка на документацию здесь:https://wiki.debian.org/ReadonlyRoot

Большой я проведу тебя здесь:

1 -в / есть определенные места, которые должны быть прочитаны и записаны.Судя по документации, это выглядит примерно так:

debian ro root

ваши блочные устройства, вероятно, будут отличаться, в зависимости от конфигурации вашего стека хранилища (разделов, lvm без разделов и т. д. )но основная идея заключается в том, что вам нужны эти 4 точки монтирования, чтобы их последующая смонтированная файловая система имеют вариант монтажа RW.

2 -в /etc есть ряд специальных файлов, для которых необходимо либо создать символическую ссылку, либо внести некоторые другие изменения (, подробно описанные в статье по ссылке. ). Они могут применяться или не применяться в зависимости от того, какие приложения работают на вашем Linux-сервере. некоторые файлы могут даже не существовать на вашем компьютере, но я включил все в документы. Имейте в виду, я настоятельно рекомендую внести эти изменения, ДАЖЕ ЕСЛИ вы убили pid процесса. Вот пути прямо из вики Debian:

  • корректировка времени
  • init.d/alsa -утилиты
  • /etc/courier/shared/index
  • любые файлы состояния чашек, class.conf, cupsd.conf, принтеры.conf, подписки.conf
  • /etc/lvm/lvm.conf
  • mtab (, к которому, похоже, вы пытались обратиться, задав mount флаг -n)
  • network/run (используется ifup и ifdown, в сжатии. не может применяться к растяжению, ymmv)
  • нологин
  • resolv.conf
  • как файлы паролей, так и теневые файлы
  • самба/dhcp.conf
  • сосать
  • удев

После того, как вы проверили все вышеперечисленное и подтвердили, что они соответствуют спецификации в вики, следующее, что нужно проверить, это /etc/apt/apt.conf

DPkg {
// Auto re-mounting of a readonly /
Pre-Invoke { "mount -o remount,rw /"; };
Post-Invoke { "test ${NO_APT_REMOUNT:-no} = yes || mount -o remount,ro / || true"; };
}; 

на основании вашей ошибки,последнее, что вы можете проверить на основе документации, приведено ниже:

«После обновления пакетов вы можете столкнуться с проблемой, что mount отказывается перемонтировать файловую систему только для чтения, сообщая вам «/ занят». Это вызвано удаленными файлами, которые все еще используются процессом.Чтобы узнать, какие процессы используют удаленные файлы, используйте инструмент checkrestart (1 )из пакета debian -или используйте следующую команду.Часто это демоны, использующие обновленные библиотеки. Вы должны перезапустить их, чтобы файлы были освобождены."

Команда

представлена ​​в док.:

{lsof +L1; lsof|sed -n '/SYSV/d; /DEL\|(path /p;'} |grep -Ev '/(dev|home|tmp|var)'

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

0
06.12.2020, 22:50
1 ответ

потому что сначала происходит перенаправление >test.txt, поэтому файл сначала обрезается, затем cat test.txtничего не читается и ничего не передается в | grep "TEST"и, таким образом, ничего не совпадает и, наконец, ничего не записывается в открытый файлtest.txt

1
18.03.2021, 22:44

Теги

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