Я немного запутался. У меня есть каталог для загрузки, из которого я хочу удалить все файлы старше 30 дней с помощью tmpreaper. Только одна проблема, рассматриваемый каталог представляет собой отдельный раздел с каталогом lost + found, конечно, мне нужно сохранить его, поэтому я добавил --protect 'lost+found'
, проблема в том, что tmpreaper выводит:
error: chdir() to directory 'lost+found' (inode 11) failed: Permission denied
(PID 30604) Back from recursing down `lost+found'.
Entry matching `--protect' pattern skipped. `lost+found'
Я пробовал использовать другой шаблон, например, lost * и так далее ... Я запускаю tmpreaper как пользователь без полномочий root, потому что нет причин для привилегий суперпользователя, потому что мне принадлежат все файлы (кроме lost + found).
Я вынужден запускать tmpreaper как root? Или мои навыки снаряда не так хороши, как я думал? Думаю, проблема в следующем:
tmpreaper will chdir(2) into each of the directories you've
specified for cleanup, and check for files matching the
<shell_pattern> there. It then builds a list of them, and
uses that to protect them from removal.
Какие-нибудь мысли и / или советы?
Команда, которую я пытаюсь запустить, выглядит примерно так:
$ /usr/sbin/tmpreaper -t --protect 'lost+found' 30d /mydir 1> /dev/null
error: chdir() to directory `lost+found' (inode 11) failed: Permission denied
Редактировать:
Redmumba заметила, что код возврата по-прежнему равен нулю, и файлы удалены. У меня, должно быть, были и другие проблемы раньше, потому что ничего не было удалено, когда я писал этот пост. В любом случае, теперь он работает, спасибо.
В lost+found
каталог зависит от файловой системы и, даже если вы измените разрешения, они автоматически вернутся к root:root
на повторной установке (или, возможно, даже раньше). Однако, поскольку похоже, что вы НЕ хотите удалять что-либо там, похоже, что проблема в указанном вами каталоге.
Например, допустим, вы удаляете файлы внутри /tmp
, который находится на отдельном разделе. Если ты бежишь tmpreaper --protect 'lost+found' /tmp/*
, Так и будет chdir
в /tmp/lost+found
затем примените оболочку glob - но это не сработает с проблемой разрешений, которую вы видели. Когда вы указываете каталог для tmpreaper
, просто используйте родительский каталог, т. е. tmpreaper --protect 'lost+found' /tmp
.
Надеюсь, это ваша проблема ... если нет, обновите дополнительную информацию (например, точную команду, которую вы используете), и мы можем попытаться вернуть вас в нужное русло!
РЕДАКТИРОВАТЬ: Итак, я установил его локально и заметил, что он успешно завершается. Похоже, что он только распечатывает сообщение об ошибке, но не реагирует на него, то есть возвращает 0, что означает успех. Первоначально я предполагал, что это не так, но, похоже, это не так. Похоже, регистрация ошибки может быть в порядке с подробностями, поскольку я бы не подумал, что это предполагаемое поведение.