쉘 스크립트(Crontab): 메모리 인쇄를 텍스트 파일에 저장하면 항상 공백이 표시됩니다.

쉘 스크립트(Crontab): 메모리 인쇄를 텍스트 파일에 저장하면 항상 공백이 표시됩니다.

내 CentOS에서 CPU 사용량과 사용 가능한 메모리 출력 수치를 텍스트 파일로 인쇄하려고 합니다. 하지만 터미널에 입력하면 모든 것이 정상입니다. 그러나 MEMORY 출력을 통해 실행될 때는 crontab항상 비어 있습니다 .

터미널에 수동으로 입력하세요:

# echo CPU: `top -b -n1 | grep "Cpu(s)" | awk '{print $2 + $4}'`, RAM: `awk '/^Mem/ {print $4}' <(free -m)` >> ~/stats.txt
# cat ~/stats.txt
CPU: 3.8, RAM: 1307

Crontab에서 동일한 명령:

*/10 * * * * echo CPU: `top -b -n1 | grep "Cpu(s)" | awk '{print $2 + $4}'`, RAM: `awk '/^Mem/ {print $4}' <(free -m)` >> ~/stats.txt

그런 다음 텍스트 파일에서:

# cat ~/stats.txt
CPU: 3.4, RAM: 
CPU: 4.1, RAM: 
CPU: 3.9, RAM: 

왜?메모리출력이 항상 비어 있습니까?

답변1

dash나는 이 굴욕을 이해하지 못하기 때문에 :

<(free -m)

대신 다음을 사용하세요.

free -m | awk '/^Mem/ {print $4}'

관련 정보