【问题标题】:Clear cache in remote server using ssh使用 ssh 清除远程服务器中的缓存
【发布时间】:2013-10-06 07:46:07
【问题描述】:

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

首先以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";

但这说明它没有足够的权限。

我错过了什么??

【问题讨论】:

    标签: linux shell ssh sudo clear-cache


    【解决方案1】:

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

    试试这样的:

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

    【讨论】:

      【解决方案2】:

      使用tee 替代与sudo 配合使用的重定向:

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

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

      【讨论】:

        【解决方案3】:

        如果您遇到此消息

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

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

        【讨论】:

          猜你喜欢
          • 2017-04-26
          • 2016-07-11
          • 2013-05-08
          • 1970-01-01
          • 2019-01-01
          • 1970-01-01
          • 2018-08-08
          • 1970-01-01
          • 2015-04-05
          相关资源
          最近更新 更多