我一直在尝试清除远程服务器中的缓存,我收到了这些命令。
首先以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";
但是这表示它没有足够的权限。
我错过了什么?
答案 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