“echo 3> / proc / sys / vm / drop_caches”-루트로 권한이 거부되었습니다


26

현재 캐시에 문제가 있습니다. 지금은 너무 많아서 지우고 싶었습니다. 나는이 작은 명령을 봤다 sync && echo 3 > /proc/sys/vm/drop_caches.
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

데비안을 실행하는 원격 시스템입니다. 내가 아는 한이 머신에는 vCore가 있으며 가상화를 위해 Virtuozzo를 사용합니다.
캐시를 지우고 싶습니다 (SSH를 통해서만 액세스 할 수 있습니다) .
나는 또한 이것을 cronjob으로 등록하려고 시도했다. 그러나 그것은 단순히 실패합니다!


1
이것을 루트로 실행하고 sudo있습니까?
terdon

2
나는 이것을 루트로 실행하고 있습니다. 그러나 sudo도 실패합니다.
BrainStone

작동하지 않습니다. 이미 시도했습니다. 같은 오류 메시지.
BrainStone

이 질문 에 대한 slm의 A를 참조하십시오 .
Risto Salminen

이것은 극히 드물지만 /proc/sys/vm/drop_caches실제로는 존재합니까?
terdon

답변:


27

SSH를 통해 루트로 로그인했습니다 ... 데비안을 실행하는 원격 시스템입니다.

실제로 원격 시스템 입니까 아니면 원격 시스템 입니까? 이것이 VPS 슬라이스 인 경우 (적어도 일부 형태의) OS 가상화 (예 : openVZ)는 컨테이너 내에서이를 허용하지 않습니다. 머신을 실행하지 않고 슬라이스 만 실행하면됩니다.


2
방법이 없습니다 ???
BrainStone

1
대체 방법이 작동하면 허용하지 않는 것이별로 없기 때문에 아마도 아닐 것입니다.
goldilocks

2
@BrainStone-OpenVZ를 사용합니다. 불가능합니다!
slm

36

sudo 루트로 완전히 실행될 수 있도록 전체 리디렉션을 포함해야합니다.

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

5
이것은 실제로 나를 위해 일했습니다 (에코에 대한 올바른 바이너리 위치로)
orm

OpenVZ에서 작동하지 않음
shilovk

1
대신에, 대신에 tee를 사용할 수 있습니다 :echo 3 | sudo tee /proc/sys/vm/drop_caches
mchid

1
@mchid, 귀하의 의견을 답변으로 추가하십시오. 또한 Azure VM에서도 작동했습니다.
Erik Shilts

이미 루트입니다. 줄 시작 부분의 #을 참조하십시오. sudo와 관련된 문제는 주목할 가치가 있지만 다른 질문입니다.
Alexei Martianov

13

이것은 OS 수준 가상화에서 정상적인 동작입니다. 이것은 하드웨어 노드에 대한 루트 액세스 권한이있는 사람 만 실행할 수 있습니다.

예를 들어 OpenVZ 를 사용하면 자신의 커널 인스턴스를 얻지 못하므로 이와 같은 명령을 수행 할 수 없습니다.

페이지가 당신에 속한 경우 같은 페이지 캐시, 그래서에만 인스턴스의 캐시를 삭제하는 모든 점유율은 커널은 확인해야 하고 다른 경우도이 페이지를 사용하지 않는 경우.

KVM 또는 Xen 과 같은 다른 가상화 기술을 사용하면 작동 할 수 있습니다.


1
캐시를 지우려면 호스트에게 연락해야합니까? 시스템에 어떤 "가상화 기술"이 있는지 어떻게 알 수 있습니까?
BrainStone

예,이 ... 주변에 오지 않을 수 있습니다
혼란

이것이 옳다면 나는 순결하지 않다. AWS 및 Xen에서 일부 VM을 실행 중이며 drop_caches를 사용할 수 있습니다.

2
OS 가상화 (OpenVZ, LXC)와 플랫폼 가상화 (QEMU, Xen) 의 차이점은 장점과 단점이 있습니다.
goldilocks

1
@bersch Xen은 VM에 자체 커널을 사용합니다. OpenVZ는 그렇지 않습니다. OpenVZ를 더 나은 "chroot"처럼 생각할 수 있습니다.
Nils

8

echopiped를 sudo tee사용하여 루트로 에코해야 할 때 필요한 적절한 권한을 허용 할 수 있습니다 .

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

tee --help더 많은 옵션을 나열하는 데 사용 합니다.


0

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

이 명령 /usr/bin/echo은 mchid 답변 없이 저에게 효과적입니다. 오류가 발생했습니다 sh: 1: /usr/bin/echo: not found. '에코'만 사용


-1

sudo를 다음과 같이 사용하려고 할 때도 같은 문제가 발생했습니다.

sudo echo 1 > /proc/sys/vm/overcommit_memory

내 해결책은 일시적으로 루트로 전환하는 것이 었습니다. 시스템에서 해당 권한을 활성화해야합니다.

sudo su -  #temporarily switch to root user
echo 1 > /proc/sys/vm/overcommit_memory
exit # Exit as root.  

-2

OpenStack과 함께 smilar VM 설정을 사용하면 작동합니다 (Debian 실행).

sync && sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.