Find

我可以減少大型遞歸 find + chmod 命令的 CPU 使用率嗎?

  • November 20, 2017

我正在使用以下命令來執行權限修復:

sudo find . -type f -exec chmod 470 {} \;

有成千上萬個文件需要更新權限。它還會在執行期間使 CPU 使用率達到峰值。

使用純 chmod 遞歸更新進一步修改文件權限的後續呼叫不會使 CPU 達到峰值

sudo chmod 770 -R /path/to/directory

我在找什麼:

  • 在此呼叫期間減少 CPU 使用率的一種方法
  • 可能過濾到需要更新權限的文件

用於nice在執行命令時設置較低的調度優先級,或用於renice更改已執行程序的優先級。

sudo nice -n 19 find . -type f -exec chmod 470 {} \;

您可以更改 find 以不返回已經與您設置的模式匹配的文件:

sudo nice -n 19 find \! -perm 0470 -and -type f -exec chmod 470 {} \;

CPU 的峰值是由於磁碟活動造成的,因此減少 CPU 的唯一方法是更快的磁碟。

引用自:https://serverfault.com/questions/884314