No momento, estou tendo alguns problemas com o cache. É um pouco demais agora, então eu queria esclarecer isso. Eu pesquisei e encontrei este pequeno comando: sync && echo 3 > /proc/sys/vm/drop_caches
.
Estou logado como root no SSH (não usando o sudo). Estas são as tentativas que fiz:
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
É uma máquina remota executando o Debian. Até onde eu sei, existem alguns vCores nesta máquina e ela usa o Virtuozzo para a virtualização.
Eu realmente só quero limpar o cache (para que eu possa acessá-lo apenas usando SSH) .
Eu também tentei registrar isso como um cronjob. Mas simplesmente falha também!
linux
permissions
virtualization
proc
openvz
BrainStone
fonte
fonte
sudo
?/proc/sys/vm/drop_caches
realmente existe?Respostas:
Na verdade, é uma máquina remota ou apenas um sistema remoto ? Se houver uma fatia do VPS em algum lugar, (pelo menos algumas formas de) virtualização do SO (por exemplo, openVZ) não permitirá isso dentro do contêiner. Você não opera a máquina, apenas executa sua fatia.
fonte
sudo
precisa cobrir todo o redirecionamento para que possa ser completamente executado pelo root:fonte
echo 3 | sudo tee /proc/sys/vm/drop_caches
Esse é um comportamento normal na virtualização no nível do SO. Isso só pode ser executado por alguém com acesso root ao nó do hardware.
Por exemplo , com o OpenVZ , você não obtém sua própria instância do kernel e, como tal, fica impedido de executar comandos como este.
Todos compartilham o mesmo cache de página; portanto, para eliminar caches apenas de sua instância, o kernel deve verificar se a página pertence a você e se as outras instâncias não estão usando essa página também.
Com outra técnica de virtualização como KVM ou Xen, isso pode estar funcionando.
fonte
Você pode usar o
echo
canalizado parasudo tee
permitir a permissão adequada necessária quando precisar ecoar como root.Use
tee --help
para listar mais opções.fonte
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
Este comando funciona para mim sem
/usr/bin/echo
na resposta mchid. Estava dando errosh: 1: /usr/bin/echo: not found
. Tão usado apenas 'eco'fonte
Eu tive o mesmo problema quando tentei usar o sudo assim:
Minha solução foi mudar temporariamente para o root. Obviamente, essa permissão deve ser ativada no seu sistema:
fonte
Usando uma configuração de VM parecida com o OpenStack e isso funciona (executando o Debian):
fonte