1

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

首先以root用户登录并执行

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

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

ssh user@ipaddress "sudo su; 同步;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";

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

我错过了什么??

4

3 回答 3

1

当你这样做时,sudo echo 3 > ....只有回显将具有“sudo”用户权限,重定向是当前用户。

尝试这样的事情:

    ssh user@ipaddress "sudo sh -c \"sync; echo 3 > /proc/sys/vm/drop_caches\"";
于 2013-09-30T12:59:03.400 回答
0

用作重定向的替代方法tee,适用于sudo

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

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

于 2013-09-30T14:56:11.143 回答
0

另外,如果您遇到此消息

>> sudo: sorry, you must have a tty to run sudo

/etc/sudoers和我一样,您可以通过编辑和评论来修复它Defaults requiretty-> #Defaults requiretty

于 2013-11-09T13:42:41.097 回答