使用ssh清除远程服务器中的缓存

时间:2013-09-30 12:30:31

标签: linux shell ssh sudo clear-cache

我一直在尝试清除远程服务器中的缓存,我收到了这些命令。

首先以root用户身份登录并执行

sync; echo 3 > /proc/sys/vm/drop_caches

但是我必须在脚本中自动执行此操作,所以我使用了这个

ssh user @ ipaddress“sudo su; sync; echo 3> / proc / sys / vm / drop_caches”;

但我无法通过sudo su获得root用户权限,我想删除sudo su而是使用

ssh user@ipaddress "sudo sync;sudo echo 3 > /proc/sys/vm/drop_caches";

但是这表示它没有足够的权限。

我错过了什么?

3 个答案:

答案 0 :(得分:1)

执行此操作sudo echo 3 > ....时,只有echo将具有“sudo”用户权限,重定向与当前用户一起使用。

尝试这样的事情:

    ssh user@ipaddress "sudo sh -c \"sync; echo 3 > /proc/sys/vm/drop_caches\"";

答案 1 :(得分:0)

使用tee作为重定向的备用,与sudo配合使用:

ssh user@ipaddress 'echo 3 | sudo tee /proc/sys/vm/drop_caches > /dev/null'

如果您想避免将“3”回显到您的终端,则重定向到/dev/null是可选的。

答案 2 :(得分:0)

此外,如果您遇到此消息>> sudo:对不起,你必须有一个tty来运行sudo,你可以通过编辑“/ etc / sudoers”来修复它并评论'Defaults requiretty'>> #Defaults requiretty。

-Amr