Bra*_*one 41 linux permissions proc virtualization openvz
我目前在缓存方面遇到了一些问题。现在有点太多了,所以我想清除它。我用谷歌搜索并找到了这个小命令:sync && echo 3 > /proc/sys/vm/drop_caches
.
我通过 SSH 以 root 身份登录(不使用 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
Run Code Online (Sandbox Code Playgroud)
它是一台运行 Debian 的远程机器。据我所知,这台机器中有一些 vCore,它使用 Virtuozzo 进行虚拟化。
我真的只想清除缓存(所以我只能使用 SSH 访问它)。
我也尝试将其注册为 cronjob。但它也只是失败了!
小智 58
sudo
必须覆盖整个重定向,以便它可以完全由 root 执行:
$ sudo sh -c "/usr/bin/echo 3 > /proc/sys/vm/drop_caches"
Run Code Online (Sandbox Code Playgroud)
gol*_*cks 31
我通过 SSH 以 root 身份登录...这是一台运行 Debian 的远程机器。
它实际上是一台远程机器,还是只是一个远程系统?如果这是某个地方的 VPS切片,(至少某些形式的)操作系统虚拟化(例如 openVZ)将不允许从容器内进行。你不运行机器,你只运行你的切片。
cha*_*aos 13
这是操作系统级虚拟化下的正常行为。这只能由对硬件节点具有 root 访问权限的人执行。
例如,对于OpenVZ,您没有自己的内核实例,因此被限制执行这样的命令。
所有共享相同的页面缓存,因此要仅删除您的实例的缓存,内核必须检查该页面是否属于您以及其他实例是否也没有使用该页面。
使用另一种虚拟化技术,如KVM或Xen,这可能会奏效。
mch*_*hid 12
当您需要以 root 身份回显时,您可以使用echo
piped 来sudo tee
允许所需的适当权限。
echo 3 | sudo tee /proc/sys/vm/drop_caches
Run Code Online (Sandbox Code Playgroud)
使用tee --help
查看更多选项。
归档时间: |
|
查看次数: |
107737 次 |
最近记录: |