В настоящее время у меня есть некоторые проблемы с кешем. Сейчас это слишком много, поэтому я хотел это очистить. Я гугл и нашел эту маленькую команду: sync && echo 3 > /proc/sys/vm/drop_caches
.
Я вошел в систему как пользователь root через SSH (не используя sudo). Это попытки, которые я сделал:
root@server: ~ # ll /proc/sys/vm/drop_caches
-rw-r--r-- 1 root root 0 15. Jan 20:21 /proc/sys/vm/drop_caches
root@server: ~ # echo 3 > /proc/sys/vm/drop_caches
-bash: /proc/sys/vm/drop_caches: Permission denied
root@server: ~ # sudo su -c "echo 3 > /proc/sys/vm/drop_caches"
bash: /proc/sys/vm/drop_caches: Permission denied
root@server: ~ # echo 3 | sudo tee /proc/sys/vm/drop_caches
tee: /proc/sys/vm/drop_caches: Permission denied
3
Это удаленная машина, на которой работает Debian. Насколько я знаю, на этой машине есть несколько vCores, и она использует Virtuozzo для виртуализации.
Я действительно просто хочу очистить кеш (поэтому я могу получить к нему доступ только через SSH) .
Я также попытался зарегистрировать это как cronjob. Но это просто не удается!
linux
permissions
virtualization
proc
openvz
BrainStone
источник
источник
sudo
?/proc/sys/vm/drop_caches
существует ли на самом деле?Ответы:
Это на самом деле удаленная машина или просто удаленная система ? Если это где-то фрагмент VPS , (по крайней мере, в некоторых формах) виртуализация ОС (например, openVZ) не разрешит это изнутри контейнера. Вы не запускаете машину, вы просто запускаете свой срез.
источник
sudo
должен полностью охватить перенаправление, чтобы он мог полностью выполняться пользователем root:источник
echo 3 | sudo tee /proc/sys/vm/drop_caches
Это нормальное поведение при виртуализации на уровне ОС. Это может выполнить только тот, у кого есть root-доступ к аппаратному узлу.
Например, в OpenVZ у вас нет собственного экземпляра ядра, и поэтому вы не можете выполнять подобные команды.
Все одни и те же кэш страниц, поэтому падение кэши только экземпляра, ядро должно проверить , если страница принадлежит вам , и если другие экземпляры не используя эту страницу тоже.
С другой техникой виртуализации, такой как KVM или Xen, это может сработать.
источник
Вы можете использовать
echo
piped для того,sudo tee
чтобы разрешить правильное разрешение, необходимое, когда вам нужно повторить как root.Используйте,
tee --help
чтобы перечислить больше вариантов.источник
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
У меня эта команда работает без
/usr/bin/echo
ответа в mchid. Это давало ошибкуsh: 1: /usr/bin/echo: not found
. Так что используется только «эхо»источник
У меня была такая же проблема, когда я пытался использовать sudo следующим образом:
Моим решением было временно переключиться на root. Очевидно, что это разрешение должно быть включено в вашей системе:
источник
Использование настроек виртуальной машины Smilar с OpenStack, и это работает (работает Debian):
источник