1

リモートサーバーのキャッシュをクリアしようとしていたのですが、これらのコマンドを取得しました。

最初に 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";

しかし、これは十分な権限がないことを示しています。

私は何が欠けていますか??

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

また、このメッセージが表示された場合

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

/etc/sudoers私が持っていたように、編集してコメントすることで修正できますDefaults requiretty-> #Defaults requiretty

于 2013-11-09T13:42:41.097 に答える
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 に答える