A/V 소프트웨어가 대용량 아카이브 파일(일반적으로 크기가 1G를 초과하는 tar.gz 파일)을 스캔하려고 할 때마다 / 파티션의 디스크 공간이 극적으로 늘어납니다. AV가 임시 파일을 어디에 저장하는지 정확히 어떻게 알 수 있나요?
검사가 완료되면 디스크 공간이 정상으로 돌아옵니다. 여러 사용자가 동시에 이 서버(CentOS 6.8)에 파일을 업로드하고 업로드할 때마다 자동으로 검사가 시작되므로 디스크 공간 사용량이 매우 빠르게 증가하여 때로는 /의 100%에 도달합니다.
"df"의 디스크가 증가하는 것을 볼 수 있지만 검사 전과 검사 중에 "du -ah --max-length=1/"의 결과를 비교해 보면 폴더가 변경되는 것을 볼 수 없습니다.
그럼에도 불구하고 vmstat를 사용하면 캐시 크기가 상당히 증가하는 것을 볼 수 있습니다.
"strace"를 사용하여 쓰기 확인을 시도했고 다음과 유사한 여러 항목을 얻었습니다. 이것을 어떻게 해석해야 할지 잘 모르겠습니다.
9358 write(8, "x\3127\16|.b\245\342^\"\252\5X\323,\3036TP\225\33R_\206**\213\177\3405\250"..., 30720) = 30720
9358 write(8, "l\254\3239\335`\3\344\306w\35D~\227\271d\216\n\272\220\323\211\262\323\220\24\232M\221\305\202F"..., 30720) = 30720
9358 write(8, "\230}YI\324\317\201s\271z\245DJO\336u\225\213\22c\302zEW\270\320\322]WZQ\235"..., 30720) = 30720
9358 write(8, "\252\210H&]q\3309U!\207f\207o?\250l\215\332<\341\335h\245<8.\217\f\241\312C"..., 30720) = 30720
감사해요,
~ 애비
답변1
strace 출력은 "write"가 파일 핸들 8을 처리하고 있음을 보여줍니다. 8번 파일 핸들이 무엇인지 확인하려면 , /proc/
이 경우 를 살펴봐야 합니다 /proc/9358/fd
. 9358은 추적 중인 PID이고 fd는 해당 PID에 대한 열린 파일 설명자를 보유합니다.
다음을 보면 실행 중인 bash의 현재 파일 설명자를 볼 수 있습니다.
/proc/$$/fd
따라서 위의 작업을 수행하면 압축이 풀린 파일에 대한 8개의 심볼릭 링크가 표시됩니다. 시간이 더 필요한 경우 SIGSTOP
이 작업을 수행하는 동안 A/V 프로세스에 메시지를 보내고, 만족스러우면 SIGCONT
작업을 계속할 수 있도록 프로세스를 계속할 수 있습니다. 분명히 이 프로세스가 네트워크 서비스(예: 웹/FTP/이메일)의 일부인 경우 사용자의 QoS에 영향을 미칠 수 있으므로 프로세스를 중단하고 싶지 않을 것입니다.
운이 좋다면 유사한 작업을 수행할 수 있어 프로세스 ID를 계산하는 시간을 절약할 수 있습니다.
pkill -STOP -f 'av binary name'
/etc에 저장된 A/V 소프트웨어용 구성 파일이 있을 수도 있으며, 이는 작업 디렉터리를 정의할 수 있습니다.