clamav와 cpulimit를 설치했습니다. CPU 제한이 70%인 루트가 아닌 /home의 모든 디렉터리를 1개씩 스캔하고 싶습니다.
나는 다음 명령을 사용하여 centos와 almalinux에서 이 작업을 수행합니다.
/home/ 찾기 - 최소 깊이 1 - 최대 깊이 1 - d를 입력하세요! -user 루트 -exec cpulimit -l 70 -- /usr/bin/clamscan -i -r {} > /root/scan_results.txt
위 명령은 centos에서 잘 작동합니다. 그러나 우분투 18과 20에서는 /home의 각 디렉터리에 대해 여러 개의 clamscan 프로세스를 생성하여 서버에 과부하가 걸리고 모든 프로세스는 70%의 CPU 사용량을 소비합니다. "top" 명령을 사용하여 이를 확인했습니다. 'ps helper | grep clamscan' 명령은 동시에 실행 중인 여러 clamscan 프로세스도 표시합니다.
/home/을 찾으세요 -최소 깊이 1 -최대 깊이 1 -유형 d! -사용자 루트 -exec /usr/bin/clamscan -i -r {} > /root/scan_results.txt
위와 같이 명령에서 cpulimit를 제거하면 1개씩 스캔하는데 clamscan 프로세스가 CPU 사용량을 100% 소모하여 원하지 않습니다.
다른 명령을 시도했지만 제대로 작동하지 않았습니다.
- /home/ 찾기 - 최소 깊이 1 - 최대 깊이 1 - d를 입력하세요! -userroot | xargs -I {} cpulimit -l 70 -- /usr/bin/clamscan -i -r {} > /root/scan_results.txt
- /home/ -최소 깊이 1 -최대 깊이 1 -유형 d를 찾으세요! -user 루트 | xargs -P 1 -I {} cpulimit -l 70 -- /usr/bin/clamscan -i -r {} > /root/scan_results.txt
나는 루트가 아닌 모든 /home 디렉토리를 한 번에 50%의 cpulimit로 스캔할 수 있지만 동시에 스캔할 수 없는 명령을 원합니다.
답변1
두 시스템 모두에서 동일하게 작동해야 합니다. centos 시스템에서 루트가 소유한 /home의 디렉토리 수를 확인할 수 있습니까? 빠르게 스캔할 수 있는 작은 디렉토리를 하나 또는 몇 개 갖는 것이 제가 생각할 수 있는 유일한 설명 방법입니다.