삭제 요청은 서비스-문의하기 이용 바랍니다.
비공개/상용 자료 요청은 금지합니다.
서버 쉘 스크립트 질문 드립니다.
2018.03.13 13:41
특정 시스템(벤더사)의 메모리 실제 사용량을 확인하는 스크립트를 생성하려고 합니다.
시스템의 memoinfo 데이터를 참조하며 아래와 같습니다.
MemTotal: 4138028 kB
MemFree: 1132700 kB
Buffers: 57132 kB
Cached: 1883316 kB
사용률 계산식은 아래와 같습니다.
(MemTotal - MemFree - Buffers - Cached) / MemTotal * 100
제가 생각 했던건 각 데이터들을 변수 지정하여,
TOTAL=`cat /proc/meminfo |grep MemTotal |awk '{printf "%.4f %", $2}'`
FREE=`cat /proc/meminfo |grep MemFree |awk '{printf "%.4f %", $2}'`
BUFFER=`cat /proc/meminfo |grep Buffers |awk '{printf "%.4f %", $2}'`
CACH=`cat /proc/meminfo |grep '^Cached' |awk '{printf "%.4f %", $2}'`
expr로 계산하려고 하니, 0으로 표현됩니다. "/"시 무조건 정수로 표현한다는걸 확인 했습니다.
| bc 옵션은 해당 시스템에서 막아놓은거 같아 반영 되지 않습니다.
결론적으로 awk로 계산해야 될거 같은데 저렇게 변수 지정 후 계산 시 어떻게 사용해야 하는지 모르겠습니다.
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
584 | ext4 최대 디렉토리 수와 파일갯수가 궁금합니다.. 1 | 리눅스초보입니다 | 1306 | 2023.11.01 |
583 | 오래만에 들어와서보니???? 1 | 울보 | 2178 | 2023.05.02 |
582 | 프로그램배워서 밥벌이하려는데 가능합니가?? 1 | 빅데이터-비트코인전문가 | 872 | 2023.02.20 |
581 | 초보입니다. 2 | 빅데이터-비트코인전문가 | 532 | 2023.02.20 |
580 | 카죠님 운영체체 업데이트 부탁드립니다 | 홍익인간 | 924 | 2021.10.20 |
579 | 리눅스 시스템 콜 설치 관련 오류입니다.. | 리눅스초보 | 358 | 2021.09.16 |
578 | Ubuntu 21.04 질문 | 성철인 | 438 | 2021.05.28 |
577 | 듀얼 OS 부팅 오류(Nvidia 드라이버...) 1 | gaap | 471 | 2020.09.21 |
576 | xshell xftp 가상머신 질문 | auman | 276 | 2020.03.20 |
575 | vmware 오류 | 깡통로봇 | 383 | 2019.07.28 |
574 | 외장 HDD 인식불가 10 | 두둥실 | 1106 | 2019.02.04 |
573 | can't choose hangul 1 | Babel | 641 | 2018.12.28 |
572 | Wine dll 파일 관련 문제 1 | dev2501 | 730 | 2018.11.26 |
571 | 만자로 리눅스 ibus 사용문제.. 2 | 먕선생 | 1285 | 2018.11.17 |
570 | Red-hat 설치시 GUI 화면 접근 불가입니다. | 댈대뤼 | 576 | 2018.10.18 |
569 | 리눅스 설치시 패키지 보는법 질문드립니다. 1 | noonccop | 1332 | 2018.08.08 |
» | 쉘 스크립트 질문 드립니다. 1 | refkim | 572 | 2018.03.13 |
567 | Ubuntu 16.04 한글 입력 텍스트 창. 4 | noobLinux | 903 | 2018.03.01 |
566 | [grub] 윈도우7있던 ssd 밀고 우분투 16버전을 깔았는데요 1 | netpi | 579 | 2018.02.26 |
565 | (linux mint)업데이트 어떻게 하세요? 4 | 구엘프 | 584 | 2018.02.13 |
그냥 $(( )) 로 계산해서 echo등으로 출력해서 보시는건 어떤가요? 출력 형식을 바꿔야 한다면 printf 를 사용하는 것도 괜찮을것 같습니다....
예제)
TOTAL=`cat meminfo |grep MemTotal |awk '{printf "%.4f", $2}'`;FREE=`cat meminfo |grep MemFree |awk '{printf "%.4f", $2}'`;BUFFER=`cat meminfo |grep Buffers |awk '{printf "%.4f", $2}'`;CACH=`cat meminfo |grep '^Cached' |awk '{printf "%.4f", $2}'`; echo $(( ($TOTAL - $FREE - $BUFFER - $CACH ) / $TOTAL * 100))