그래서 그것에 대해 너무 많이 생각하지 않고 다음 스크립트를 실행했습니다.
#!/bin/bash
SWAP="${1:-512}"
NEW="$[SWAP*1024]"; TEMP="${NEW//?/ }"; OLD="${TEMP:1}0"
sed "/^Swap\(Total\|Free\):/s,$OLD,$NEW," /proc/meminfo > /etc/fake_meminfo
mount --bind /etc/fake_meminfo /proc/meminfo
내 스왑 공간에 대해 거짓말을 하는 데는 효과적이었지만 이제는 이와 같은 좋은 오래된 명령을 원합니다.
free -m
다시 작동하지만 /proc/meminfo는 완전히 비어 있고 서버는 더 이상 RAM에 대해 아무것도 모르는 것 같습니다.
읽어 주셔서 감사합니다.
답변1
그냥 제거하세요:umount /proc/meminfo
이러한 모든 프로그램( free
, top
등 atop
)은 어딘가에서 정보를 가져와야 합니다. 거기 어딘가에 있어요 /proc/meminfo
.
프로그램에 허위 정보를 제공하려면 다음을 수행하십시오.마운트 네임스페이스:
$ unshare -m bash
$$ mount --bind … /proc/meminfo
$$ myprogram
스왑 공간에 대해 거짓말을 하고 싶다면 meminfo
가짜 파일을 다음과 같이 설정하세요.FUSE 파일 시스템을 통한 동적 파일. (참고: 명명된 파이프도 작동하지만 한 번에 하나의 프로그램에서만 액세스할 수 있는 경우에만 작동합니다.)