CPU 주파수를 기록하기 위한 다음 스크립트가 있습니다. 스크립트에서 언급한 대로 출력을 임시로 파일에 저장한 temp.txt
다음 이를 읽고 측정 번호와 함께 기본 파일에 복사합니다. 이 과정은 43,200번 반복됩니다. 따라서 파일 freq_log.txt
도 43,200번 덮어썼습니다!
내 질문:출력을 디스크의 파일에 쓰지 않고 메모리(시스템의 메모리는 32GB)에 저장하고 프로세스가 완료되면 디스크에 쓰는 것이 가능합니까?
아직 질문이 있습니다. 탭을 통해 도입된 시간 변수를 사용하여 temp.txt
-> 2단계 프로세스를 한 줄에 넣을 수 있습니까 ?freq_log.txt
#!/bin/bash
# Log freq.
echo "Logging started.";
times=0 #counter variable
rm t_log.txt
while [ $times -lt 43200 ]; do # run for ~60 hrs
lscpu | grep "CPU MHz" >> temp.txt #log data in temp.txt
let times=times+1
sleep 5
echo -e "$(cat temp.txt)""\t$times" >> freq_log.txt #add new line on file
rm temp.txt
done
echo "---- finished ----"
답변1
/dev/shm/
이미 tmpfs 기반 램디스크인 에 파일을 저장합니다 .
답변2
모든 것을 테이블에 넣어볼 수 있습니다.
logMem=()
for ((i=0;i<2000;i++))
do msg=`printf "hello %d\n" $i`
logMem+=("$msg")
done
그런 다음 모든 것을 적어 두십시오.
( for msg in "${logMem[@]}"
do echo "$msg"
done ) > logFile.txt