“echo 3 / proc / sys / vm / drop_caches” - Permissão negada como root

18

Atualmente, 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 sobre SSH (não usando 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 rodando Debian. Tanto quanto eu sei, existem alguns vCores nesta máquina e usa Virtuozzo para a virtualização.
Eu realmente só quero limpar o cache (Então, só posso acessá-lo usando SSH) .
Eu também tentei registrar isso como um cronjob. Mas simplesmente falha também!

    
por BrainStone 15.01.2014 / 20:42

6 respostas

21

I am logged in as root over SSH...It is a remote machine running Debian.

É realmente uma máquina remota, ou apenas um sistema remoto ? Se esta é uma fatia do VPS em algum lugar, (pelo menos algumas formas de) a virtualização do sistema operacional (por exemplo, openVZ) não permitirá isso dentro do contêiner. Você não roda a máquina, apenas executa sua fatia.

    
por 15.01.2014 / 21:06
23

o sudo precisa cobrir todo o redirecionamento para que possa ser executado completamente sob a raiz:

$ sudo sh -c “/usr/bin/echo 3 > /proc/sys/vm/drop_caches”
    
por 05.08.2014 / 08:50
11

Esse é um comportamento normal na virtualização no nível do sistema operacional. Isso só pode ser executado por alguém com acesso root ao nó de hardware.

Com, por exemplo, 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áginas, portanto, para descartar caches de apenas sua instância, o kernel deve verificar se a página pertence a você e se as outras instâncias não estiverem usando esta página também. / p>

Com outra técnica de virtualização, como KVM ou Xen , isso pode estar funcionando.

    
por 15.01.2014 / 21:14
7

Você pode usar echo canalizado para sudo tee para permitir a permissão adequada quando precisar ecoar como root.

echo 3 | sudo tee /proc/sys/vm/drop_caches

Use tee --help para listar mais opções.

    
por 29.01.2017 / 17:59
0

sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"

Este comando funciona para mim sem /usr/bin/echo em resposta mchid. Foi dando erro sh: 1: /usr/bin/echo: not found . Então, usado apenas 'echo'

    
por 16.10.2018 / 13:47
0

Eu tive o mesmo problema quando tentei usar o sudo assim:     sudo echo 1 > / proc / sys / vm / overcommit_memory

Minha solução foi mudar temporariamente para root. Obviamente, essa permissão deve estar ativada em seu sistema:

1. "sudo su -"  #temporarily switch to root user
2.  echo 1 > /proc/sys/vm/overcommit_memory
3.  exit # Exit as root.  
    
por 04.12.2018 / 17:31